為什麼用直方圖均衡化處理rgb彩色影象,會出現色彩失真

2021-04-28 22:55:19 字數 3192 閱讀 3812

1樓:肆拾知天命

因為直方圖均衡來化是

源影象處理領域中

利用影象直方圖對

對比度進行調整的方法。

這種方法的缺點是

它對處理的資料不加選擇,

它可能會增加背景雜訊的

對比度並且降低有用訊號的對比度;

變換後影象的灰度級減少,

某些細節消失;某些影象,

如直方圖有高峰,

經處理後對比度不自然的過分增強。

所以色彩會有失真。

數字影象處理直方圖均衡化的程式源**是什麼?

2樓:

clear all%一,影象的預處理,讀入彩色影象將其灰度化

ps=imread('1.jpg'); %讀入jpg彩色影象檔案

imshow(ps) %顯示出來

title('輸入的彩色jpg影象')

imwrite(rgb2gray(ps),'picsamplegray.bmp'); %將彩色**灰度化並儲存

ps=rgb2gray(ps); %灰度化後的資料存入陣列

%二,繪製直方圖

[m,n]=size(ps); %測量影象尺寸引數

gp=zeros(1,256); %預建立存放灰度出現概率的向量

for k=0:255

gp(k+1)=length(find(ps==k))/(m*n); %計算每級灰度出現的概率,將其存入gp中相應位置endfigure,bar(0:255,gp,'g') %繪製直方圖

title('原影象直方圖')

xlabel('灰度值')

ylabel('出現概率')

%三,直方圖均衡化

s1=zeros(1,256);

for i=1:256for j=1:is1(i)=gp(j)+s1(i); %計算skendends2=round((s1*256)+0.5); %將sk歸到相近級的灰度

for i=1:256

gpeq(i)=sum(gp(find(s2==i))); %計算現有每個灰度級出現的概率endfigure,bar(0:255,gpeq,'b') %顯示均衡化後的直方圖

title('均衡化後的直方圖')

xlabel('灰度值')

ylabel('出現概率')

為什麼ps裡的直方圖變白色了,本來是rgb彩色的直方圖, 不知自己按錯什麼鍵變成白色的了。

3樓:安迪磊

你好!你上圖的模式是顏色。下圖的模式是rgb。

你可以在這裡右上角的下拉選單中選擇擴充套件,然後把通道選成顏色就可以回到你第一圖的顯示。同樣你也可以在裡邊發現rgb三原色各自的通道直方圖。

4樓:匿名使用者

一/可能是按了刪除鍵,你表達的不清楚,

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

5樓:用著追她

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

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

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

4、均衡化的**如下。

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

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

6樓:匿名使用者

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('直方圖均衡後的影象');

7樓:匿名使用者

%% 灰度均衡化函式 自編

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);

測定葉綠素a過程中,為什麼要進行酸化處理

因為鹽酸的酸根不跟你要測定的物質反應,不影響結果,比如硫酸具有氧化性會參與反應的 葉綠素a的測定方法有哪些?各有哪些優缺點 葉綠素a的測定方法有哪些 一.單色分光光度法測定葉綠素含量時,要測定665和750nm處的吸光度 根據文獻,665nm處光密度值應該在0.1 0.8之間.葉綠素含量測定選取待測...

訊號處理中為什麼用覆訊號,請問為什麼訊號處理中要用頻域分析

根據來傅立葉變換的性質,實自值函式的頻譜是關於f 0軸對稱的 或奇對稱,或偶對稱 也就是說,實值函式的頻域表示是存在冗餘的,因此為了訊號處理方便,去掉頻域的負半平面,這樣產生的頻譜所對應的時域訊號就是一個覆訊號,這個覆訊號稱為解析訊號 預包絡 請問為什麼訊號處理中要用頻域分析?枯禪 站內聯絡ta 理...

硬體有什麼用?處理器有什麼用主機板有什麼用記憶體有什麼用硬碟有什麼用顯示卡有什麼用顯示器有什麼用

是要配主機嗎?怎麼問這麼基本的問題,可以講一本書了 電腦的硬體也就是處理器cpu 主機板 記憶體 硬碟 顯示卡 顯示器 光碟機 網絡卡 音效卡等等。主機板是用來安裝cpu記憶體顯示卡網絡卡音效卡等輸入輸出裝置的。輸入裝置有 鍵盤 滑鼠等。輸出裝置有 顯示卡 網絡卡 音效卡等。顯示器是和電腦病毒一樣的...