2016-04-25 116 views
-1

我有含有基質負值和正值:直方圖均衡

a sample matrix

我成功使用該命令來繪製其PDF:

[n,xout] = hist(A(:), 256); 
pdf = n/numel(A); 
figure; stem(xout, pdf, 'marker', 'none');  

不幸我不能」 t使用unique(A)而不是256,因爲它會返回我的矩陣的值和重複!

這是pdf:pdf 我該如何做直方圖均衡?我計算使用此命令PDF的累計總和:

ind = find(pdf == max(pdf)); 

cdf1 = cumsum(pdf(ind:end)); 
cdf2 = cumsum(pdf(ind-1:-1:1)); 

cdf = [flipud(cdf2); cdf1]; 

figure; stem(xout, cdf, 'marker', 'none'); 

而導致CDF是:cdf

是真的嗎?如果是的話,那麼我應該怎麼做?最後如何將均衡直方圖轉換爲均衡圖像(矩陣)?

任何幫助,將不勝感激。

+1

怎麼樣'在以前的版本中histogram'或'hist'? –

回答

0

如果X是你的矩陣,你可以簡單地做:

[y, elements] = hist(X(:), unique(X)); 
stem(elements, y); 

,你有你的直方圖

+0

謝謝MingiuX,但爲什麼獨特(X)?我在參數中使用了256而不是唯一的(X),並得到了一個像imhist那樣的負分佈的直方圖。 – bahar

+0

使用256而不是唯一的(X),你正在創建一個由256個元素組成的元素向量,所以你可以將你的x軸分成256個不同的值,只給出那些你可以在'X'矩陣中找到的值。使用唯一的(X),您可以獲得只包含僅考慮一次的「X」矩陣元素的元素向量(它們是您賦予權重不同於0的元素)。如果這個答案不清楚,試着爲這兩種情況打印你的'elements'矢量,你就會明白。 – MingiuX

+0

好的。非常感謝你。 – bahar