灰度圖像增強的大致原理以及操作方法
面向作業編程
上圖是大概對灰度圖的增強處理
就是想讓圖片變得更好看
那么如何具體操作就看下面的代碼了
這是一個簡單的線性分段處理,相信在注釋的幫助下應該能看懂。
%返回行數列數
[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('改變均衡化參數');
對於后面的偽彩色增強請看下一篇