如何實現數字影象直方圖的均衡化處理

2021-03-19 18:20:17 字數 5743 閱讀 6798

1樓:匿名使用者

因為直方圖均衡化處理之後,原來比較少畫素的灰度會被分配到別的灰度去

①求該影象的灰度直方圖。②對該影象進行直方圖均衡化處理,寫出過程和結果。

2樓:

首先需要說明的是,如果你說的是一道完整的題目,則這道題目沒有唯一解,因為題目中沒有說明原始影象的灰度級數(比如原始影象是16個灰度級的,或者是32個灰度級的,等等)。為了給你提供一個解題思路,現在人為假設原始影象是16個灰度級的,其它灰度級的解法類似。

1、影象的灰度直方圖求法為:

(1)先計算影象中各個灰度級的出現頻率,用h(i)表示灰度級i的出現頻率,其值等於灰度級出現次數/影象畫素個數:

h(0)=2/16

h(1)=1/16

h(2)=3/16

h(3)=2/16

h(4)=0/16

h(5)=1/16

h(6)=4/16

h(7)=1/16

h(8)=1/16

h(9)=1/16

h(10)=h(11)=h(12)=h(13)=h(14)=h(15)=0/16。

然後以灰度級i為橫軸,出現頻率h(i)為縱軸即可繪製出影象對應的直方圖。

(2)影象進行直方圖均衡化處理的過程為:

先計算累積分佈,用r(i)表示灰度級i的累積分佈:

r(0)=h(0)=2/16

r(1)=r(0)+h(1)=2/16+1/16=3/16

r(2)=r(1)+h(2)=3/16+3/16=6/16

r(3)=r(2)+h(3)=6/16+2/16=8/16

r(4)=r(3)+h(4)=8/16+0/16=8/16

r(5)=r(4)+h(5)=8/16+1/16=9/16

r(6)=r(5)+h(6)=9/16+4/16=13/16

r(7)=r(6)+h(7)=13/16+1/16=14/16

r(8)=r(7)+h(8)=14/16+1/16=15/16

r(9)=r(8)+h(9)=15/16+1/16=16/16=1

r(10)=r(11)=r(12)=r(13)=r(14)=r(15)=1

將累積分佈進行量化(量化時需要用到原始影象的灰度級數,這也是為什麼前面需要說明的原因),量化後的灰度級用rq(i)表示,量化公式為rq(i)=round(r(i)*15),(說明:量化公式中的15等於原始影象灰度級數減1),可得:

rq(0)=round(r(0)*15)=2

rq(1)=round(r(1)*15)=3

rq(2)=round(r(2)*15)=6

rq(3)=round(r(3)*15)=8

rq(4)=round(r(4)*15)=8

rq(5)=round(r(5)*15)=8

rq(6)=round(r(6)*15)=12

rq(7)=round(r(7)*15)=13

rq(8)=round(r(8)*15)=14

rq(9)=round(r(9)*15)=15

rq(10)=round(r(10)*15)=15

rq(11)=round(r(11)*15)=15

rq(12)=round(r(12)*15)=15

rq(13)=round(r(13)*15)=15

rq(14)=round(r(14)*15)=15

rq(15)=round(r(15)*15)=15

因此,原始影象中的灰度級和均化後影象中的灰度級之間的對應關係為:

0->2

1->3

2->6

3->8

4->8

5->8

6->12

7->13

8->14

9->15

10->15

11->15

12->15

13->15

14->15

15->15

將原始影象中對應的灰度值安裝上述對應關係替換成相應的灰度值,即可得到均化影象,結果如下:

3 8 13 8

6 12 2 12

14 6 12 8

15 6 12 2

(在電腦上直接做的,僅供參考。round(.)表示四捨五入。)

直方圖均衡化處理的主要步驟是什麼

3樓:女寢門後賣香蕉

設原始影象在(x,y)處的灰度為f,而改變後的影象為g,則對影象增強的方法可表述為將在(x,y)處的灰度f對映為g。

在灰度直方圖均衡化處理中對影象的對映函式可定義為:g = eq (f)。

這個對映函式eq(f)必須滿足兩個條件(其中l為影象的灰度級數):

(1)eq(f)在0≤f≤l-1範圍內是一個單值單增函式。這是為了保證增強處理沒有打亂原始影象的灰度排列次序,原圖各灰度級在變換後仍保持從黑到白(或從白到黑)的排列。

(2)對於0≤f≤l-1有0≤g≤l-1,這個條件保證了變換前後灰度值動態範圍的一致性。

4樓:暖萱紫菱

直方圖均衡化演算法分為三個步驟,第一步是統計直方圖每個灰度級出現的次數,第二步是累計歸一化的直方圖,第三步是計算新的畫素值。

第一步:

for(i=0;is[i][j])}}

找出畫素的最大值和最小值。

for(i=0;i

5樓:暮遲雪

直方圖均衡化的基本思想是把原始圖的直方圖變換為均勻分佈的形式,這樣就增加了象素灰度值的動態範圍從而可達到增強影象整體對比度的效果。設原始影象在(x,y)處的灰度為f,而改變後的影象為g,則對影象增強的方法可表述為將在(x,y)處的灰度f對映為g。在灰度直方圖均衡化處理中對影象的對映函式可定義為:

g = eq (f),這個對映函式eq(f)必須滿足兩個條件(其中l為影象的灰度級數):   (1)eq(f)在0≤f≤l-1範圍內是一個單值單增函式。這是為了保證增強處理沒有打亂原始影象的灰度排列次序,原圖各灰度級在變換後仍保持從黑到白(或從白到黑)的排列。

  (2)對於0≤f≤l-1有0≤g≤l-1,這個條件保證了變換前後灰度值動態範圍的一致性。

數字影象處理題目(直方圖均衡化)

6樓:鍾

pr(r11)=0.023寫錯了,

均衡化後只輸出10個灰度級了,分別是

ps(s3)=0.195;

ps(s5)=0.160;

ps(s8)=0.147;

ps(s9)=0.106;

ps(s10)=0.073;

ps(s11)=0.056;

ps(s12)=0.09;

ps(s13)=0068.;

ps(s14)=0.069;

ps(s15)=0.036;

其中r6、r7同被對映為12;

r8、r9同被對映為13;

r10、r11、r12同被對映為14;

r13、r14、r15同被對映為15。

圖的話,按照資料畫出來就是了,橫座標是輸出灰度級sk,縱座標是ps(sk)

寫一段**畫出一個影象的灰度直方圖(不能用matlab自帶的imhist函式),並作直方圖均衡化處理。

7樓:用著追她

1、先求出給定**的直方圖。

2、直方圖均衡化處理的公式,其中,v和u分別代表影象的高和寬。

3、為此,寫出**是:pic[i,j]=(255)/(u*v)*sum(c[:int(img[i,j])])。

4、均衡化的**如下。

5、畫出均衡化**的直方圖。

6、均衡化前後,**對比一下。做影象減法:pic-img。

8樓:匿名使用者

i=rgb2gray(i);  %灰度化

%繪製直方圖

[m,n]=size(i);

gp=zeros(1,256);

for k=0:255

gp(k+1)=length(find(i==k))/(m*n);  %計算每級灰度出現的概率,將其存入gp

end%三,直方圖均衡化

s1=zeros(1,256);

for i=1:256

for j=1:i

s1(i)=gp(j)+s1(i);

endend

s2=round((s1*256)+0.5); %將sk歸到相近級的灰度

for i=1:256

gpeq(i)=sum(gp(find(s2==i)));%計算現有每個灰度級出現的概率

endfigure;

subplot(221);bar(0:255,gp,'b');

title('原影象直方圖')

subplot(222);bar(0:255,gpeq,'b')title('均衡化後的直方圖')

x=i;

for i=0:255

x(find(i==i)) = s2(i+1);

endsubplot(223);imshow(i);

title('原影象') ;

subplot(224);imshow(x);

title('直方圖均衡後的影象');

9樓:匿名使用者

%% 灰度均衡化函式 自編

i = rgb2gray(imread('lena.png'));

matlab_i=histeq(i);

for j=1:1:256

num_j(j)=max(size(find(j-1==i)));

endfor op=1:1:size(i,1)

for pk=1:1:size(i,2)

gray=i(op,pk,1);

gray1=sum(num_j(1:gray+1))/(size(i,1)*size(i,2))*255;

custom_i(op,pk,1)=uint8(round(gray1));

endend

figure;

subplot(231),imshow(i);title('原圖灰度化');

subplot(234),imhist(i);

subplot(232),imshow(matlab_i);title('matlab灰度均衡');

subplot(235),imhist(matlab_i);

subplot(233),imshow(custom_i);title('自定義灰度均衡');

subplot(236),imhist(custom_i);

怎樣用matlab對一幅影象進行灰度直方圖均衡化處理

10樓:匿名使用者

i=imread('pout.tif'); %讀自帶的影象imshow(i);

figure,imhist(i);

[j,t]=histeq(i,64); %影象灰度擴充套件到0~255,但是隻有64個灰度級

figure,imshow(j);

figure,imhist(j);

figure,plot((0:255)/255,t); %轉移函式變換曲線

j=histeq(i,32);

figure,imshow(j); %影象灰度擴充套件到0~255,但只有32個灰度級

figure,imhist(j);

matlab如何實現矩陣影象的直方圖均衡化

基於matlab的直方圖均衡化 2007 04 15 20 15 clear all 一,影象的預處理,讀入彩色影象將其灰度化 讀入jpg彩色影象檔案 imshow ps 顯示出來 title 輸入的彩色jpg影象 imwrite rgb2gray ps picsamplegray.bmp 將彩色 ...

為什麼直方圖均衡化能有效增強影象

因為直方圖均衡化處理之後,原來比較少畫素的灰度會被分配到別的灰度去,畫素相對集中,處理後灰度範圍變大,對比度變大,清晰度變大,所以能有效增強影象。直方圖均衡化是影象處理領域中利用影象直方圖對對比度進行調整的方法。這種方法通常用來增加許多影象的區域性對比度,尤其是當影象的有用資料的對比度相當接近的時候...

數字影象處理的問題!!均衡化處理的

如果訊號是連續的,那麼均衡化是很好的方法。但是正是因為數字影象的離散性,會給影象均衡化增強帶來很多挑戰。且直方圖的均衡化只適合解決偏暗的影象。如果要粗略的增強影象,可以採用直方圖的規定化。我也是阮老師的,這個問題我知道。晚上到我們寢室我來告訴你啊 我是阮老師,同學我記住你了,期末 數字影象處理問題 ...