前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >给你的女神洗洗脸

给你的女神洗洗脸

作者头像
巴山学长
发布2019-07-15 16:09:26
4150
发布2019-07-15 16:09:26
举报
文章被收录于专栏:巴山学长巴山学长

请大家想一下,当自己存储了好久女神的图片被噪声污染了,那是一种怎样的伤心欲绝的事情啊。但是,有matlab在。你什么都不用担心,matlab会用滤波的办法给图片进行去噪操作。也就是给你的女神“洗脸”,先给大家看一个例子。

处理完了以后:女神又恢复了原来美美哒的样子了,对不对。添加的椒盐噪声几乎全没了。

首先,大家需要了解一下一个简单的非线性空间滤波的工具箱。这个函数就是g=ordfilt2(f,order,domain)。

至于线性滤波,我在前面就已经讲过。如果大家想要对照着学习,可以看一下。

matlab图像(亮度变换与线性滤波)

记住,这个工具箱只能处理二维的图片。当然,可以用其他办法搞定三维的彩色图片。

其中g就是它的输出图像,它的原理非常简单,它可以生成统计排序滤波器,它的响应是基于对图像邻域包含的像素进行排序。然后用排序结果确定的值来代替邻域的中心像素的值。

其中order代表使用排序元素的第order个元素代替f中的每一个元素。而该邻域由domain中的非零元素指定。

比较有名的滤波叫做中值滤波。它对应的是第50个百分位。也就是像素点总和的一半。

语法如下:

g=ordfilt2(f,median(1:m*n),ones(m,n))

还有最小滤波器,对应第0个百分位。

语法如下:

g=ordfilt2(f,1,ones(m,n))

还有对应100个百分位的滤波器。也就是像素点总和。

g=ordfilt2(f,m*n,ones(m,n))。

另外中值滤波还有一个专用的工具箱g=medfilts(f)。

接下来我给出一个中值滤波的例子,这个是将彩色图片处理成黑白图片以后进行的操作。

代码如下

代码语言:javascript
复制
clear
clc
f=imread('12_w.bmp'); %读原图像
f=rgb2gray(f);
f1=imnoise(f,'salt & pepper',0.09); %加椒盐噪声
g=medfilt2(f1); %进行中值滤波
subplot(1,3,1),imshow(f),title('原图像')
subplot(1,3,2),imshow(f1),title('被椒盐噪声污染的图像')
subplot(1,3,3),imshow(g),title('中值滤波图像')

中值滤波以后,被污染的图像几乎恢复得和原来的图像一模一样。

如果添加的是高斯噪声,效果也不错。

代码中只需要把添加噪声的代码修改成下面的就可以了

代码语言:javascript
复制
f1=imnoise(f,'gaussian',0,0.01); %加高斯噪声

那有一些朋友可能会问了,彩色图片应该怎么处理,那是三维的矩阵,工具箱不能解决呀!

不用担心,彩色图片有三个颜色通道,只需要分别处理这三个颜色通道。然后组合在一起,彩色图片就自然解决掉了。

对这三个颜色通道的处理和灰度图一模一样。这就实现了我在开头给大家的图。

代码如下:

代码语言:javascript
复制
clear
clc
f=imread('12_w.bmp');
f1=imnoise(f(:,:,1),'salt & pepper',0.09); %加椒盐噪声
f2=imnoise(f(:,:,2),'salt & pepper',0.09); %加椒盐噪声
f3=imnoise(f(:,:,3),'salt & pepper',0.09); %加椒盐噪声
f_noise(:,:,1)=f1;
f_noise(:,:,2)=f2;
f_noise(:,:,3)=f3;
g1=medfilt2(f1);%中值滤波
g2=medfilt2(f2);%中值滤波
g3=medfilt2(f3);%中值滤波
g_1(:,:,1)=g1;
g_1(:,:,2)=g2;
g_1(:,:,3)=g3;
subplot(1,3,1),imshow(f),title('原图像');
subplot(1,3,2),imshow(f_noise),title('添加椒盐噪声的图像');
subplot(1,3,3),imshow(g_1),title('处理以后的图像');

全部资源:

链接:https://pan.baidu.com/s/13GyWNKiLC93snD0dK72rXA

提取码:f9w5

参考文献:《数学建模算法与应用》(司守奎,孙兆亮)

图片来源:https://pixabay.com

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图片处理
图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档