在图像matlab上执行均值滤波



我试图在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。

最新更新