您的位置:首页 > 其它

直方图均衡化

2013-11-26 14:23 162 查看
function histEqualization(srcImage)
if length(size(srcImage)) > 2 ;
srcImage = rgb2gray(srcImage);
end
tempImage = double(srcImage);
subplot(1,4,1),imshow(uint8(tempImage));
[M,N] = size(tempImage);
tempSeq = reshape(tempImage,1,M*N);
X = unique(tempSeq);
[nf,f] = hist(tempSeq,X); %列出原始直方图
subplot(1,4,2),hist(tempSeq,X);
L = size(f,2);
nf = nf/size(tempSeq,2);
gf = zeros(1,L);
gf(1) = nf(1);
for i=2:L;
gf(i) = gf(i-1) + nf(i); %计算原始累积直方图
end
g = floor((max(tempSeq)-1)*gf+0.5);
for i=1:M;
for j=1:N;
tempImage(i,j) = g(f==tempImage(i,j)); %确定映射关系
end
end
subplot(1,4,3),imshow(uint8(tempImage));
tempSeq = reshape(tempImage,1,M*N);
X = unique(tempSeq);
subplot(1,4,4),hist(tempSeq,X); %计算新直方图
有关其原理可以参考 : http://hi.baidu.com/lwb198609_love/item/41f46b126e64476a70d5e826
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: