我试图在Matlab中对图像执行均值滤波,我必须使其模块化,这样我就有了另一个函数来进行平均,然后我的脚本调用该函数。我运行了这个脚本,没有任何错误,但它似乎没有进行过滤,因为图像的输出与原始图像没有什么不同。有人看到我哪里出错了吗?
%input image
image1 = imread('moon.jpg');
%convert to grayscale
%mean filtering
mean = averagefilter2(image1);
image_grey = rgb2gray(mean);
figure;
imshow(image_grey);
%my average filter function%
function img=averagefilter2(image1)
meanFilter = fspecial('average',[3 3]);
img = imfilter (image1,meanFilter);
end
谢谢!
你能展示你的image1和image_grey的图形吗?您也可以尝试imagesc(abs(image1-image_grey))
来查看原始图像和平均图像之间的差异。我运行了你的代码,没有发现问题。我可以在我的样本图像中观察到平滑效果。
记住也要将rgb2gray
应用于图像1。