面向作业编程
上图是大概对灰度图的增强处理
就是想让图片变得更好看
那么如何具体操作就看下面的代码了
这是一个简单的线性分段处理,相信在注释的帮助下应该能看懂。
%返回行数列数 [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
基于直方图
每个灰度图片可以看作很多像素点的集合,而每一个像素点的值就是对应的灰度值。
将所有的灰度值统计起来可以得到一个灰度值/频率的直方图
如下
然后你可以对其进行处理
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('改变均衡化参数');
对于后面的伪彩色增强请看下一篇
https://www.cnblogs.com/sky-fish/p/14914466.html