【数字图像处理】Matlab实现-图像增强-灰度图像增强

灰度图像增强的大致原理以及操作方法

面向作业编程

【数字图像处理】Matlab实现-图像增强-灰度图像增强

上图是大概对灰度图的增强处理

就是想让图片变得更好看

那么如何具体操作就看下面的代码了

这是一个简单的线性分段处理,相信在注释的帮助下应该能看懂。

%返回行数列数
[h,w]=size(gray);
[m,n]=size(gray);
%创建一个0矩阵
NewImage1=zeros(h,w); 
%变参数图像
NewImage1_1=zeros(m,n);
%原图进行处理 分段线性变换
a=80/256; b=180/256; c=30/256; d=220/256;
for x=1:w 
 for y=1:h
 if gray(y,x)<a 
 NewImage1(y,x)=gray(y,x)*c/a;
 elseif gray(y,x)<b
 NewImage1(y,x)=(gray(y,x)-a)*(d-c)/(b-a)+c;
 else
 NewImage1(y,x)=(gray(y,x)-b)*(255-d)/(255-b)+d;
 end 
 end
end

基于直方图

每个灰度图片可以看作很多像素点的集合,而每一个像素点的值就是对应的灰度值。

将所有的灰度值统计起来可以得到一个灰度值/频率的直方图

如下

【数字图像处理】Matlab实现-图像增强-灰度图像增强

然后你可以对其进行处理

NewImage2=histeq(gray);
%0-10均匀分布
NewImage2_2=histeq(gray,10);
%0-2均匀分布
NewImage2_1=histeq(gray,2);
imhist(NewImage2);
imhist(NewImage2_1);
imhist(NewImage2_2);
figure,imshow(NewImage2),title(\'直方图均衡化\');
figure,imshow(NewImage2_1),title(\'改变均衡化参数\');
figure,imshow(NewImage2_2),title(\'改变均衡化参数\');

【数字图像处理】Matlab实现-图像增强-灰度图像增强

对于后面的伪彩色增强请看下一篇

https://www.cnblogs.com/sky-fish/p/14914466.html