matlab练习程序(中值滤波)

本文详细介绍了一种图像处理技术——中值滤波器的MATLAB实现过程。通过使用MATLAB读取图像、进行中值滤波处理并展示处理前后的对比效果,深入探讨了中值滤波器在噪声去除方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cl;
img=imread('1.bmp');
img=double(img);
imshow(mat2gray(img));

[m n]=size(img);
imgn=zeros(m-3,n-3);
temp=[];
for i=1:m-3
for j=1:n-3
temp=img(i:i+3,j:j+3);
imgn(i,j)=median(temp(:));
end
end

figure,imshow(mat2gray(imgn))
imgn=img(1:m-3,1:n-3)-imgn;
figure,imshow(mat2gray(imgn))
imgn=imgn .* (imgn>0);
figure,imshow(mat2gray(abs(imgn)))

转载于:https://www.cnblogs.com/tiandsp/archive/2012/02/02/2335632.html

图像处理是Matlab的一个重要应用领域,通过学习Matlab中的图像处理工具箱,可以方便地进行图像的读取、显示、滤波、变换等各种操作。中值滤波是一种常用的非线性滤波技术,特别适用于去除随机噪声。要在Matlab中进行中值滤波,你需要使用图像处理工具箱中的imfilter函数或medfilt2函数。以下是一个简单的示例: 参考资源链接:[Matlab上机实验详解与参考解答全集](https://wenku.csdn.net/doc/xxv23n64pw?spm=1055.2569.3001.10343) 首先,你需要一个带有噪声的图像,可以使用imnoise函数给一个干净的图像添加噪声。然后,使用medfilt2函数对图像进行中值滤波。 示例代码如下: ```matlab % 读取原始图像 originalImage = imread('image.jpg'); % 向图像中添加噪声,这里使用高斯噪声 noisyImage = imnoise(originalImage, 'gaussian'); % 显示带噪声的图像 figure; imshow(noisyImage); title('带噪声的图像'); % 使用中值滤波去除噪声 % 注意:第个参数[3 3]表示3x3的滤波器窗口 filteredImage = medfilt2(noisyImage, [3 3]); % 显示滤波后的图像 figure; imshow(filteredImage); title('滤波后的图像'); ``` 在上面的代码中,'image.jpg'是你需要处理的图像文件名。'imnoise'函数用于向图像添加高斯噪声,而'medfilt2'函数则是实际应用中值滤波的函数,其参数[3 3]表示使用3x3的邻域进行滤波。通过比较带噪声的图像和滤波后的图像,可以直观地看到中值滤波对噪声的去除效果。 为了进一步学习Matlab在图像处理方面的应用,我推荐阅读《Matlab上机实验详解与参考解答全集》这本书。该资源不仅包含了图像处理实验的详细讲解,还有其他相关的Matlab编程练习,有助于你更全面地掌握Matlab的图像处理技术。 参考资源链接:[Matlab上机实验详解与参考解答全集](https://wenku.csdn.net/doc/xxv23n64pw?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值