当前位置:网站首页>Matlab学习7-图像处理之线性平滑滤波
Matlab学习7-图像处理之线性平滑滤波
2022-06-11 08:32:00 【CHengYuP】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
空域滤波增强
- 卷积原理
- 多维连续卷积
- 线性平滑滤波
- 领域平均法、选择平均法、Wiener滤波
- 非线性平滑滤波
- 中值滤波
- 线性锐化滤波
- Laplacian算子
- 非线性锐化滤波
- Prewitt算子
- Sobel算子
- Log算子
Matlab学习7-图像处理之线性平滑滤波
领域平均法、选择平均法、Wiener滤波
一、选择平均法滤波去噪
效果
代码
% 选择平均法滤波去噪
img =imread("img/test.bmp");
subplot(2,3,1);imshow(img),xlabel("原始图像");
% 均值滤波
K1=filter2(fspecial("average",3),img);
subplot(2,3,2);imshow(uint8(K1)),xlabel("原图3*3卷积和均值滤波");
%卷积和 或模板
mask=[ 0 0 0
0 1 1
0 1 1];
mask=1/4*mask;
K2=filter2(mask,img);
subplot(2,3,3);imshow(uint8(K2)),xlabel("原图选择平均卷积和均值滤波");
ju=imnoise(img,"salt & pepper",0.04);
subplot(2,3,4);imshow(ju),xlabel("噪声图像");
% 均值滤波
K3=filter2(fspecial("average",3),ju);
subplot(2,3,5);imshow(uint8(K3)),xlabel("噪声图像3*3卷积和均值滤波");
%卷积和 或模板
mask=[ 0 0 0
0 1 1
0 1 1];
mask=1/4*mask;
K4=filter2(mask,ju);
subplot(2,3,6);imshow(uint8(K4)),xlabel("噪声图像选择平均卷积和均值滤波");
二、领域平均法去噪
效果
代码
%领域平均法去噪
img =imread("img/eight.tif");
subplot(2,3,1);imshow(img),xlabel("原始图像");
ju=imnoise(img,"salt & pepper",0.004);
subplot(2,3,2);imshow(ju),xlabel("噪声图像");
% 均值滤波
K1=filter2(fspecial("average",3),ju);
subplot(2,3,3);imshow(uint8(K1)),xlabel("3*3卷积和均值滤波");
K2=filter2(fspecial("average",5),ju);
subplot(2,3,4);imshow(uint8(K2)),xlabel("5*5卷积和均值滤波");
%卷积和 或模板
mask4=[ 0 1 0
1 0 1
0 1 0];
mask4=1/4*mask4;
K3=filter2(mask4,ju);
subplot(2,3,5);imshow(uint8(K3)),xlabel("4邻域卷积和均值滤波");
mask8=[ 1 1 1
1 0 1
1 1 1];
mask8=1/8*mask8;
K4=filter2(mask8,ju);
subplot(2,3,6);imshow(uint8(K4)),xlabel("8邻域卷积和均值滤波");
三、Wiener滤波
效果
代码
% Wiener滤波
img =imread("img/eight.tif");
subplot(2,3,1);imshow(img),xlabel("原始图像");
ju=imnoise(img,"salt & pepper",0.04);
subplot(2,3,2);imshow(ju),xlabel("噪声图像");
K1=wiener2(ju,[3,3]);
subplot(2,3,3);imshow(K1),xlabel("噪声图像3*3Wiener滤波");
K2=wiener2(ju,[5,5]);
subplot(2,3,4);imshow(K2),xlabel("噪声图像5*5Wiener滤波");
K3=wiener2(ju,[7,7]);
subplot(2,3,5);imshow(K3),xlabel("噪声图像7*7Wiener滤波");
K4=wiener2(ju,[9,9]);
subplot(2,3,6);imshow(K4),xlabel("噪声图像9*9Wiener滤波");
四、线性平滑滤波
代码
%线性平滑滤波
Fxy=[0 20 40 70
80 100 120 150
160 180 200 230];
uint8Fxy=uint8(Fxy);
subplot(2,2,1),imshow(uint8Fxy),xlabel("原始图像");
subplot(2,2,2),imhist(uint8Fxy),axis([0,255,0,1]),xlabel("原始图像的直方图","position",[120,-0.23]);
%平滑操作,作用模糊,去噪
Gxy=filter2(fspecial("average",3),uint8Fxy);
uint8Gxy=uint8(Gxy);
subplot(2,2,3),imshow(uint8Gxy),xlabel("均值滤波后的图像");
subplot(2,2,4),imhist(uint8Gxy),axis([0,255,0,1]),xlabel("滤波后图像的直方图","position",[120,-0.23]);
点击获取源码
https://gitee.com/CYFreud/matlab/tree/master/image_processing/demo7_220418
边栏推荐
- Icml2022 interesting articles
- 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
- Typescript type protection
- MySQL & Oracle database capacity query
- Hibernate L2 cache
- Typescript declaration merge
- Typescript keyboard mapping
- Using flying items to manage by objectives, not being a "headless fly" in the workplace
- How to do well in empty state design? Look at this comprehensive summary
- (taking pytorch as an example) a simple understanding of the regularization method of path (depth) -drop path
猜你喜欢

经典图论,深度优先和广度优先,拓扑,Prim和Krukal,该来温习啦

你所不知道的console

Oracle learning (I)

How to make hyperlinks in RichTextBox- How can I make a hyperlink work in a RichTextBox?

剑指 Offer 40. 最小的k个数

Uniapp plug-in development

Web design and website planning assignment 12 online registration form

Introduction to knowledge atlas -- yedda annotation

知识图谱入门之---yedda标注

ActiveMQ简单教程,适合初学者,学习笔记yyds
随机推荐
(resolved) the tqdm progress bar in the Jupiter notebook does not update and display in one line, but scrolls down to output
Deep understanding of add in argparse module_ Argument parameters (such as action)
qiao-npms:获取npm包下载量
leetcode - 739. 每日温度
一些学习记录i=
Node error report sorting
Oracle learning (I)
Introduction to guava cache usage
Introduction to the principles of linkedblockingqueue, arrayblockingqueue, synchronousqueue, concurrentlinkedqueue and transferqueue
【node】npm部分
【1】 Integrated learning: quickly understand Integrated Learning
Typescript distributed condition type
二、渲染 Camera 的数据
XXL task executor calls local project
Pycharm启动卡死,loading project
Project training - clonemon
Redis6 entry-level tutorial. There are integration cases. You can directly see the integration cases. It is easy to get started
torch. roll
MySQL advanced features, you can read more about it and meet the interview
【clickhouse专栏】新建库角色用户初始化