今天在看文献的时候,看到如下一句话:
This reduction is accomplished by taking the averages of all nonoverlapping 3*3 pixels. 即:通过计算所有不重叠3*3邻域的像素均值来实现(图像空间上的)减小。
意思是将一幅图像首先分为一个个的3*3邻域,求每个邻域内像素的均值,并将这些均值按原有次序组合成一幅新的图像,那么图像在空间尺寸上要小于原图像。
以MATLAB附带的图像pout.tif为例实现上述过程:
close all; clear all; clc;
I = im2double(imread('pout.tif'));
fun = @(block_struct) mean2(block_struct.data);
I1 = blockproc(I, [3, 3], fun);
figure;
subplot(121), imshow(I);
subplot(122), imshow(I1);
实现的效果图如下:
工作空间变量如下:
说明:
B=blockproc(A, [m,n], fun):该函数对输入图像A,采用大小为m*n的分离块,利用函数fun处理,处理后的结果连接成输出图像B。其中fun是函数句柄,该函数输入为结构体,返回矩阵,向量或变量。