图像增强的目的:消除噪声,显现那些被模糊了的细节或简单地突出衣服图像中读者感兴趣的特征

1.图像增强基础

图像增强概念:根据特定的需要突出一幅图像中的某些信息,同时削弱或除去某些不需要的信息处理方法。其主要目的是使处理后的图像对某种特定的应用来说,比原始图像更适用。处理的结果是使图像更适合于人的观察或机器的识别系统。

空间域图像增强是基于图像中每个小范围(邻域)内的像素进行灰度变换运算,某个点变换之后的灰度由该点邻域之内的那些点的灰度值共同决定,因此空间域增强也称为邻域运算或邻域滤波。

2.空间域滤波

滤波:是信号处理中的一个概念,是将信号中特定波段频率滤除的操作,在数字信号处理中通常通过傅里叶变换及其逆变换实现。

边界处理:执行滤波操作要注意的一点是当模板位于图像边缘时,会产生模板的某个元素很可能位于图像之外的情况,这时对于在边缘附近执行滤波操作需要单独处理,以避免引用到不属于图像的无意义的值。

解决边界问题的方法:

(1)收缩处理范围:处理时忽略位于图像f边界附近会引起问题的那些点

(2)使用常数填充图像:根据模板形状为图像f虚拟出边界,虚拟边界像素值为指定的常数,如0,得到虚拟图像f1,保证模板在移动过程中始终不会超过f1边界。

(3)使用复制像素的方法填充图像:和(2)基本相同,只是用来填充虚拟边界像素值的不是固定的常数,而是复制图像f本身边界的模式。

滤波函数imfilter()原型如下

g=imfilter(f,w,option1,option2,...)

f是要进行滤波操作的图像

w时滤波操作所使用的模板,为一个二维数组

option1,option2,..是可选项,具体可以包括以下内容:边界选项、尺寸选项、模式选项

matlab实现

f=imread('pout.tif');%读入图像
imshow(f);
w=[1 1 1;1 1 1;1 1 1]/9 %滤波模板

g=imfilter(f,w,'corr','replicate');%滤波
figure,imshow(g);

二维滤波器fsspecial()原型如下:

h=fspecial(type,parameters)

type:指定了滤波器的类型

可选输入parameters:是和所选定的滤波器类型type相关的配置参数,如尺寸和标准差等,如果不提供则函数使用该类型的默认参数配置

返回时h:为特定的滤波器

3图像平滑

定义:图像平滑是一种可以减少和抑制图像噪声的使用数字图像处理技术,在空间域中一般可以采用邻域平均来达到平滑的目的。

matlab实现

I=imread('baby_noise.bmp');
figure,imshow(I)%原图
h=fspecial('average',3);%3x3平均模板
I3=imfilter(I,h,'corr','replicate');%相关滤波,重复填充边界
figure,imshow(I3)
h=fspecial('average',5)%5x5平均模板
I5=imfilter(I,h,'corr','replicate');
figure,imshow(I5)
h=fspecial('average',7);%7x7平均模板
I7=imfilter(I,h,'corr','replicate');
figure,imshow(I7)

高斯平滑定义:平均平滑对于邻域内的像素一视同仁,为了减少平滑处理过程中的模糊,得到更自然的平滑效果,很自然的想到适当加大模板中心点的权重,随着距离中心点的距离增大,权重迅速减小,从而可以确保中心点看起来更接近于与它距离更近的点,基于这样的考虑得到的模板即为高斯模板。

matlab实现

I=imread('baby_noise.bmp');
subplot(2,3,1),imshow(I),title('原图像');
h3_5=fspecial('gaussian',3,0.5);%sigma=0.5的3x3高斯模板
I3_5=imfilter(I,h3_5);
subplot(2,3,2),imshow(I3_5),title('3x0.5');

h3_8=fspecial('gaussian',3,0.8);%sigma=0.8的3x3高斯模板
I3_8=imfilter(I,h3_8);
subplot(2,3,3),imshow(I3_8),title('3x0.8');

h3_18=fspecial('gaussian',3,1.8);%sigma=1.8的3x3高斯模板,接近于平均模板
I3_18=imfilter(I,h3_18);
subplot(2,3,4),imshow(I3_18),title('3x1.8');

h5_8=fspecial('gaussian',5,0.8);%sigma=0.8的3x3高斯模板
I5_8=imfilter(I,h5_8);
subplot(2,3,5),imshow(I3_8),title('5x0.8');
imwrite(I5_8,'baby5_8.bmp');

h7_12=fspecial('gaussian',7,1.2);%sigma=0.8的3x3高斯模板
I7_12=imfilter(I,h7_12);
subplot(2,3,6),imshow(I7_12),title('7x1.2');
imwrite(I7_12,'baby7_12.bmp');

4中值滤波

定义:中值滤波本质上是一种统计排序滤波器。中值是指排序队列中位于中间位置的元素的值

性能比较:中值滤波对于某些类型的随机噪声具有非常理想的降噪能力,对于线性平滑滤波而言,在处理的像素邻域之类包含噪声点时,噪声的存在总会或多或少影响该点像素值的计算(对于高斯平滑,影响程度同噪声点到中心点的距离成正比),但在中值滤波中,噪声点则常常是直接被忽略掉的;而且同线性平滑滤波器相比,中值滤波在降噪的同时引起的模糊效应较低。中值滤波的一种典型应用是消除椒盐噪声。

噪声模型:

图片加噪声

J=imnoise(I,type,parameters)

type:噪声类型

中值滤波原型:

I2=medfilt2(I1,[m,n])

I1是原图矩阵

m和n是中值滤波处理的模板大小,默认3x3

输出I2是中值滤波后的图像矩阵

matlab实现

I=imread('lena_AdaptiveMedianFilter.bmp');
subplot(2,3,1),imshow(I),title('原图像');
J=imnoise(I,'salt & pepper'); %为图像叠加椒盐噪声
subplot(2,3,2),imshow(J),title('原图像叠加椒盐噪声');
w=[1 2 1;2 4 2;1 2 1]/9;
J1=imfilter(J,w,'corr','replicate');%高斯平滑
subplot(2,3,3),imshow(J1),title('高斯平滑');
w=[1 1 1;1 1 1;1 1 1]/9;
J2=imfilter(J,w,'corr','replicate');%平均平滑
subplot(2,3,4),imshow(J2),title('平均平滑');
J3=medfilt2(J,[3,3]);%中值滤波
subplot(2,3,5),imshow(J3),title('中值滤波');

5图像锐化

定义:用于增强灰度的跳变部分,这一点与图像平滑对灰度跳变的抑制正好相反。图像锐化的目的是使模糊的图像变得更加清晰起来。

Robert交叉梯度图像锐化  matlab实现

I=imread('bacteria.bmp');
subplot(2,2,1),imshow(I),title('原图像');
I=double(I);%转换为double型,这样可以保存负值,否则unite8型会把负值截掉
w1=[-1 0;0 1];
w2=[0 -1;1 0];
G1=imfilter(I,w1,'corr','replicate');
G2=imfilter(I,w2,'corr','replicate');
G=abs(G1)+abs(G2);%计算Robert梯度
subplot(2,2,2),imshow(G,[]),title('Robert交叉梯度图像');
subplot(2,2,3),imshow(abs(G1),[]),title('w1滤波后取绝对值并重新标定');
subplot(2,2,4),imshow(abs(G2),[]),title('w1滤波后取绝对值并重新标定');

基于二阶微分的图像增强——拉普拉斯算子

拉普拉斯算子对于接近水平和接近竖直方向的边缘都有很好的增强,从而也就避免读者在使用梯度算子时要进行两次滤波的麻烦

I=imread('bacteria.bmp');
subplot(2,2,1),imshow(I),title('原图像');
I=double(I);
w1=[0 -1 0;-1 4 -1;0 -1 0]
L1=imfilter(I,w1,'corr','replicate');
w2=[-1 -1 -1;-1 8 -1;-1 -1 -1]
L2=imfilter(I,w2,'corr','replicate');
subplot(2,2,2),imshow(abs(L1),[]),title('w1模板');
subplot(2,2,3),imshow(abs(L2),[]),title('w2模板');
w3=[1 4 1;4 -20 4;1 4 1]
L3=imfilter(I,w3,'corr','replicate');
subplot(2,2,4),imshow(abs(L3),[]),title('w3模板');

基于一阶和二阶锐化算子的比较

一阶导数通常会产生较宽的边缘;

二阶导数对于跃性边缘中心产生零交叉,而对于屋顶状边缘,二阶导数取极值;

二阶导数对细节有较强的相应,如细线和孤立噪声点。

高提升滤波及其实现

原理:无论基于一阶微分的Robert、sobel模板还是基于二阶微分的拉普拉斯模板,其中各系数和均为零。这说明算子在灰度恒定区域的响应为0,即在锐化处理后的图像中,原图像的平滑区域近乎于黑色,而原图中所有的边缘、细节和灰度跳变点都作为黑色背景中高灰度部分突出显示。在基于锐化的图像增强中常常希望在增强边缘和细节的同时仍然保留原图像中的信息,而不是将平滑区域的信息丢失。因此可以把原图像加上锐化后的图像得到比较理想的结果。

注意:具有正的中心系数和具有负的中心系数的模板之间的差别,对于中心系数为负的模板,要达到上述的增强效果,显然应当让原图像f(i,j)减去锐化算子直接处理后的图像。为正的模板就加。

高斯——拉普拉斯变换

matlab实现

I=imread('baby.bmp');
subplot(2,2,1),imshow(I),title('原图像');
Id=double(I);
h_lap=[-1 -1 -1;-1 8 -1;-1 -1 -1]%拉普拉斯算子
I_lap=imfilter(Id,h_lap,'corr','replicate');
subplot(2,2,2),imshow(uint8(abs(I_lap)),[]),title('Laplacian锐化图像,噪声较明显');%取绝对值,并将255以上的响应截断
h_log=fspecial('log',5,0.5);%大小为5,sigma为0.5的LoG算子
I_log=imfilter(Id,h_log,'corr','replicate');
subplot(2,2,3),imshow(uint8(abs(I_log)),[]),title('经LoG处理后的图像,sigma=0.5');
h_log=fspecial('log',5,2);
I_log=imfilter(Id,h_log,'corr','replicate');
subplot(2,2,4),imshow(uint8(abs(I_log)),[]),title('经LoG处理后的图像,sigma=2');

空间域图像增强(matlab实现)相关推荐

  1. 数字图像处理——第三章 空间域图像增强(灰度变换和直方图处理)

    文章目录 空间域图像增强 1. 背景知识 2. 基本灰度变换 2.1 图像反转 2.2 对数变换 2.3 幂次变换 2.4 分段线性变换函数 2.4.1 对比拉伸 2.4.2 灰度切割 2.4.3 位 ...

  2. 【OpenCV 例程200篇】67. 空间域图像增强的综合应用

    [OpenCV 例程200篇]67. 空间域图像增强的综合应用 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 5. ...

  3. 图像处理基本算法之空间域图像增强

    图像增强技术根据增强处理过程所在的空间不同,可分为基于频域的算法和基于空域的算法两大类.基于频域的算法是在图像的某种变换域内对图像的变换系数值进行某种修正,是一种间接增强的算法,把图像看成一种二维信号 ...

  4. 循序渐进之(五)空间域图像增强之自适应直方图均衡化(AHE)

    循序渐进之(五)空间域图像增强之自适应直方图均衡化(AHE) 文字摘自:对比度受限的自适应直方图均衡化(CLAHE) 直方图均衡化(HE)是一种很常用的直方图类方法,基本思想是通过图像的灰度分布直方图 ...

  5. 数字图像处理系列(二)---空间域图像增强-点运算

    chapter2 空间域图像增强(点增强) 1.图像增强的基本概念 在不考虑图像降质的情况下,通过经验和试探的方法,把图像感兴趣的部分进行选择性突出,而把不在意的部分进行压制,从而得到我们想要的信息. ...

  6. 数字图像处理——第三章 空间域图像增强(空间滤波)

    文章目录 1. 空间滤波基础 2. 线性滤波器 2.1 平滑空间滤波器 2.2 锐化空间滤波器 2.2.1 基于一阶微分的图像增强--梯度法 2.2.2 基于二阶微分的图像增强--拉普拉斯算子 3. ...

  7. 数字图像处理 空间域平滑 MATLAB实验

    一.原理_均值滤波 设加噪图像为 f(x,y) ,经均值滤波处理后的图像为g(x,y) ,则: 式中, S是(x,y)像素点的邻域,K是S内的像素数. 最典型的S为3X3邻域,可用模板形式表示为: 这 ...

  8. 空间域图像增强:卷积和空间域滤波

    1.什么是卷积? 卷积:数学中关于两个函数的一种无穷积分运算,是通过两个函数f 和g 生成第三个函数的一种数学算子,表征函数f 经过翻转和平移与g 的重叠部分的累积. 2.什么是空间卷积? 线性空间滤 ...

  9. 【五】空间域图像增强

    1 空间域增强基础 空间域增强是对图像的一个邻域,用滤波.平滑.锐化等方法,从而增强图像. 2 空间域滤波 滤波就是将信号中特定波段频率滤除,常用傅里叶变换及其逆变换等实现. 具体过程就是取一个方形模 ...

  10. 数字图像处理 空间域锐化 MATLAB实验

    一.原理_空间域锐化 设图像为 f(x,y) , Roberts算子的定义式为: 其对应的模板为: Prewitt算子的定义式为: 其中, 其对应的模板为: Sobel算子的定义式为: 其中, 其对应 ...

最新文章

  1. 全球 Top 1000 计算机科学家 h 指数公布,中国顶尖计算机科学家人数进入前三
  2. Algs4-1.4.7统计算术运算与比较次数
  3. 将数字字符串格式化为指定长度
  4. 数据丢失与重复_大数据面试题分享-恭喜这位朋友刚毕业拿到了20K
  5. 进入大厂的面试经验(P7)
  6. 谈自由,ASP.NET Core才是未来?
  7. kindeditor编辑器图片上传session丢失_微信公众号排版编辑器全指南!
  8. 网易云深度学习第二课NoteBook2
  9. mysql 查看内核版本命令_Linux查看版本命令问题
  10. sqlite3_get_table()
  11. android pdf阅读开发
  12. seo和网站服务器有什么区别,网站为什么要做seo,seo与sem有什么区别
  13. Python爬虫爬取小说 转换成epub格式
  14. 赵小楼《天道》《遥远的救世主》深度解析(51)为什么芮小丹用脱衣这个方式来告白丁元英?
  15. java jsp使用flash播放mp4,(jsp/html)网页上嵌入播放器(常用播放器代码整理)
  16. 高等数学——多元函数的极值的条件
  17. Keil MDK 又更新了啥子嘛?
  18. 2020年OJ习题【map】
  19. 前端基础(不定期更新)
  20. 鸿蒙2.0操作系统画面测评,鸿蒙2.0系统是希望也是野心

热门文章

  1. gatk过滤_详解GATK突变硬过滤 | 群体遗传专题
  2. 2022-数字媒体技术是什么?学什么?身为普通本科生的我们该怎么学?
  3. 拆素数【找规律,数学】
  4. Android8.0 页面崩溃问题
  5. win10系统中如何查看wifi密码
  6. cmd看excel有多少个子表_如何将一个 Excel 工作簿中的多个工作表合并成一个工作表?...
  7. exploit completed, but no session was created
  8. 【秘密】我经历过的币圈天使融资,了解一下
  9. 合伙创业 三大误区
  10. 移动跨平台框架ReactNative活动指示器组件【11】