图像增强学习笔记(一)| 灰度变换与直方图修正

图像增强的目的是改善图像的视觉效果,针对给定图像的应用场合,有目的地强调图像的整体或局部特性,扩大图像中不同物体特征之间的差别,为图像的信息提取及图像分析奠定基础。

图像增强的方法是通过锐化、平滑、去噪,对比度拉伸等手段对图像附加一些信息或变换数据,使图像与视觉响应相匹配,以便突出图像的某些目标特征而抑制另一些特性,或简化数据提取。


目录

灰度变换法

1、全域线性变换

2、非线性灰度变换

1、指数变换

2、对数变换

直方图修正法

1、灰度直方图

2、直方图均衡化

3、直方图规定化

直方图修正法运行结果及matlab代码


灰度变换法

一般成像系统只具有一定的亮度响应范围,亮度的最大值与最小值之比称为对比度。灰度变换法可使图像的动态范围增大,对比度扩展,清晰度增加,特征更明显。

1、全域线性变换

灰度变换函数:gif.latex?g%3D%5CPhi%20%5Cleft%20%5Bf%5Cright%20%5D%3Dmf+n

m=1,n=0则输出图像与输入图像相同(复制)

m>1,n=0则对比度扩展

m<1,n=0则对比度压缩

m<0,n=0则图像取反

m=1,n~=0则输出图像较输入图像偏亮或偏暗

由此可以看出m的大小决定对比度的扩展压缩,n决定图像的最低灰度

为了突出感兴趣的目标或灰度区间,相对抑制那些不感兴趣的灰度区域,可采用分段线性变换,即每一段使用不同的灰度变换函数。

2、非线性灰度变换

当用某些非线性函数如指数函数、对数函数作为映射函数时,可实现图像的非线性变换

1、指数变换

gif.latex?g%28x%2Cy%29%3Db%5E%7Bc%5Bf%28x%2Cy%29-a%5D%7D-1 ,a,b,c为常数,下同

2、对数变换

%28blnc%29

直方图修正法

1、灰度直方图

灰度直方图表示一幅图像分布情况的统计图表。直方图的横坐标是灰度级,一般用r表示,纵坐标是具有该灰度级的像素个数或出现这个灰度级的概率P。

N

N为一幅图像种像素的总数;gif.latex?n_%7Bk%7D为第k集灰度的像素,gif.latex?r_%7Bk%7D为第k个灰度级,gif.latex?P%28r_%7Bk%7D%29表示该灰度级出现的概率。对于相同的场景,由于获得图像时的亮度或对比度不同,所对应的直方图也不同。可以通过改变直方图的形状来达到增强图像对比度的效果。

直方图的常见用途:

1、数字化参数。描述图像整体灰度分布,判断灰度的利用量。

2、边界的阈值选取。图片种不同物体具有不同峰值区域,取直方图峰谷为阈值点可以实现边界分离与二值化处理。

2、直方图均衡化

对原始图像中的像素灰度做出某种映射变换,使变换后图像灰度的概率密度均匀分布,即灰度级均匀分布,使图像动态范围得到增加,从而可提高图像的对比度。

gif.latex?r%3DT%5E%7B-1%7D%28s%29

r与s分别表示归一化了的原始图像和变换后的图像灰度,均在区间[0,1]内

由概率论最终可证:变换函数为

gif.latex?s%3DT%28r%29%3D%5Cint_%7B0%7D%5E%7Br%7DP_%7Br%7D%28r%29dr

3、直方图规定化

直方图均衡化的优点是能自动地增强整个图像的对比度,但它的具体增强效果不易控制,处理的结果总是得到全局均衡化的直方图,另外,均衡化处理不一定能优化人眼视觉体验。综上,实际应用中要能够使直方图变换为要求的形状,从而有选择地增强某个灰度范围内的对比度。这种方法就是直方图规定化(也叫直方图匹配)

直方图修正法运行结果及matlab代码

38881908edcf459aa134fd05bca05bec.png

I=imread('C:\Users\ASUS\Desktop\Digital image processing\photo\5ff2f784ee976a38221a0151c5a4e2a0.jpg');
I=rgb2gray(I);
figure
subplot(3,2,1),imshow(I);title('原图片');%显示原图片
subplot(3,2,2),imhist(I);title('原图直方图');%显示直方图
subplot(3,2,3),imcontour(I);title('原图等灰度值图');%显示原图等值灰度值图
subplot(3,2,4),imshow(imadjust(I,[0.3,0.7],[]));title('对比度调整后的图像');%显示imadjust手动调整得到的图
subplot(3,2,5),imshow(histeq(I));title('直方图均衡化后的图像');%显示直方图均衡化后的图像
subplot(3,2,6),imhist(histeq(I));title('直方图均衡化后图像的灰度图');%显示直方图均衡化后图像的灰度图

 

 

 

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Matlab中,图像的线性变换可以通过以下的代码实现: ```matlab I = imread('image.jpg'); % 读取图像 a = 1.5; % 线性变换的参数 b = 50; J = a * I + b; % 线性变换公式 imshow(I); % 显示原图像 figure; % 新建一个窗口 imshow(J); % 显示线性变换后的图像 ``` 上述代码中,`imread`函数用于读取图像文件,`a`和`b`分别为线性变换的参数,`J`为线性变换后的图像。`imshow`函数用于显示图像,显示原图像和线性变换后的图像的效果。 对于图像的指数变换和对数变换,可以使用以下的代码实现: ```matlab I = imread('image.jpg'); % 读取图像 c = 1.5; % 指数/对数变换的参数 J_exp = c .* exp(I); % 指数变换公式 J_log = log(c+double(I)); % 对数变换公式 imshow(I); % 显示原图像 figure; % 新建一个窗口 imshow(J_exp); % 显示指数变换后的图像 figure; % 新建一个窗口 imshow(J_log); % 显示对数变换后的图像 ``` 上述代码中,`exp`函数表示指数运算,`log`函数表示对数运算。`double`函数是为了将图像类型转换为双精度浮点型,以保证计算的准确性。`J_exp`为指数变换后的图像,`J_log`为对数变换后的图像。最后使用`imshow`函数显示原图像、指数变换后的图像和对数变换后的图像的效果。 需要注意的是,图像的线性、指数和对数变换都可能产生像素值溢出或失真的问题,因此在实际应用中需要根据具体情况选择适当的参数和调整算法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值