直方图与图像滤波

在这里插入图片描述
第一题:
%读入自定义图像
I=imread(‘杨吉玲.jpg’);
subplot(1,5,1),imshow(I);
%使用imnoise函数添加椒盐噪声 0.13为椒盐噪声尺寸
K = imnoise(I,‘salt & pepper’,0.13);
subplot(1,5,2),imshow(K);
%将图像K保存
imwrite(K,‘1.jpg’)
%采用预定义滤波器(fspecial)方式实现33平均模板的平均平滑滤波
h = fspecial(‘average’,3);
%imfilter函数对任意类型数组或多维图像进行滤波
%K输入图像,h滤波模板,I3滤波结果,corr滤波模式,replicate图像大小通过复制外边界的值来扩展
I3=imfilter(K,h,‘corr’,‘replicate’);
subplot(1,5,3),imshow(I3);
imwrite(I3,‘2.jpg’)
%采用预定义滤波器(fspecial)方式实现5
5平均模板的平均平滑滤波
a = fspecial(‘average’,5);
I4=imfilter(K,a,‘corr’,‘replicate’);
subplot(1,5,4),imshow(I4);
imwrite(I4,‘3.jpg’)
%采用预定义滤波器(fspecial)方式实现77平均模板的平均平滑滤波
b = fspecial(‘average’,7);
I5=imfilter(K,a,‘corr’,‘replicate’);
subplot(1,5,5),imshow(I5);
imwrite(I5,‘4.jpg’)
效果图:
在这里插入图片描述
第二题
%读入自定义图像
I = imread(‘杨吉玲.jpg’);
%彩色图像转化为灰度图像
K = rgb2gray(I);
subplot(1,5,1),imshow(K);
%椒盐噪声
J = imnoise(K,‘salt & pepper’,0.13);
subplot(1,5,2),imshow(J);
imwrite(J,‘5.jpg’);
%手动定义一个3
3的均值滤波器
%平均平滑
w1 = [1,1,1;1,1,1;1,1,1]/9;
K1 = imfilter(J,w1,‘corr’,‘replicate’);
subplot(1,5,3),imshow(K1);
imwrite(K1,‘6.jpg’);
%手动定义一个3*3的高斯滤波器
%高斯平滑
w2 = [1,2,1;2,4,2;1,2,1]/16;
K2 = imfilter(J,w2,‘corr’,‘replicate’);
subplot(1,5,4),imshow(K2);
imwrite(K2,‘7.jpg’);
%调用matlab的中值滤波器对图像J进行中值滤波处理
%medfilt2 消除噪声 [3,3]表示邻域块的大小,默认值为[3,3]
K3 = medfilt2(J,[3,3]);
subplot(1,5,5),imshow(K3);
imwrite(K3,‘8.jpg’);
figure(1);
效果图:
在这里插入图片描述
第三题:
I = imread(‘bacteria.BMP’);
%将无符号整形的图像I转化为double型的I
I = double(I); %双精度型
%定义robert左上右下交叉算子
w1 = [-1,0;0,1];
%定义robert右上左下交叉算子
w2 = [0,-1;1,0];
%使用W1对图像I滤波
G1 = imfilter(I,w1,‘corr’,‘replicate’);
%使用W2对图像I滤波
G2 = imfilter(I,w2,‘corr’,‘replicate’);
%计算合成Robert梯度
G = abs(G1)+abs(G2);
figure(1);
subplot(2,4,1),imshow(I,[]);
subplot(2,4,2),imshow(abs(G1),[]);
subplot(2,4,3),imshow(abs(G2),[]);
subplot(2,4,4),imshow(G,[]);
%定义sobel水平算子
w3 = [-1,-2,-1;0,0,0;1,2,1];
%定义sobel竖直算子
w4 = [-1,0,1;-2,0,2;-1,0,1];
%使用W3对图像I滤波
G3 = imfilter(I,w3,‘corr’,‘replicate’);
%使用W4对图像I滤波
G4 = imfilter(I,w4,‘corr’,‘replicate’);
%计算sobel梯度
S = abs(G3)+abs(G4);
subplot(2,4,6),imshow(abs(G3),[]);
subplot(2,4,7),imshow(abs(G4),[]);
subplot(2,4,8),imshow(S,[]);
效果图:
在这里插入图片描述
第四题:
I = imread(‘bacteria.BMP’);
I = double(I);
%定义拉普拉斯算子
w1 =[0,-1,0;-1,4,-1;0,-1,0];
%定义拉普拉斯算子
w2 = [-1,-1,-1;-1,8,-1;-1,-1,-1];
%定义拉普拉斯算子
w3 = [1,4,1;4,-20,4;1,4,1];
%使用拉普拉斯算子w1滤波
L1 = imfilter(I,w1,‘corr’,‘replicate’);
%使用拉普拉斯算子w2滤波
L2 = imfilter(I,w2,‘corr’,‘replicate’);
%使用拉普拉斯算子w3滤波
L3 = imfilter(I,w3,‘corr’,‘replicate’);
subplot(2,2,1),imshow(I,[]);
subplot(2,2,2),imshow(abs(L1),[]);
subplot(2,2,3),imshow(abs(L2),[]);
subplot(2,2,4),imshow(abs(L3),[]);
效果图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值