2012-11-10 3 views
0

입력 : 0..255]의 계조 IMG
출력 : IMG 히스토그램 정규화 - 픽셀계조 정규화 된 히스토그램

이것의 총 수로 나눈 배열 1X256 내 해결책은 다음과 같습니다.

function [h] = histImage(img) 
    h=zeros(1,256) 
    for i=1:size(h,2) 
     h(i) = length(find(img==i)); 
    end 
    h = h./sum(h); 

더 좋은 방법이 있습니까?

답변

2

"더 나은"항상 보는 사람의 눈에 있습니다. 여하튼, 여기서 accumarray하여 위를 수행하는 방법 :

%# each pixel contributes 1/nPixels to the counts of the histogram 
%# to use graylevels as indices, we have to add 1 to make it 1...256 

nPix = numel(img); 
h = accumarray(img(:)+1,ones(nPix,1)/nPix,[256 1],@sum,0); 
+0

H = accumarray을 (IMG (:) + 1들 (nPix 1)/nPix [256 1] @ 합, 0); 이건 내가 생각하는 것입니다. – Gilad

+0

@Androidy : 그렇게 생각합니다. :) – Jonas