【数字图像处理】直方图均衡化

绘制直方图

1.出错代码(没有意识到图片是彩色的要转换为灰度二维)

clc;close all;clear all;
image=imread('ufo.jpg');
img=imhist(image,25);
horz=linspace(0,255,25);
bar(horz,img)

2.正确代码

clc;close all;clear all;
image=imread('ufo.jpg');
image=rgb2gray(image);   %灰度
img=imhist(image,25);    %25是直方图容器数目
horz=linspace(0,255,25);  %行向量
bar(horz,img)

 或者直接imhist(image)图就出来了。

直方图均衡

使用matlab工具箱histeq,g=histeq(f,nlev),nlev为灰度级数。

 

clc;close all;clear all;
image=imread('ufo.jpg');
image=rgb2gray(image);
g=histeq(image,256);
subplot(2,2,1)
imshow(image);
title('原图');
subplot(2,2,2)
imhist(image);
title('直方图');
subplot(2,2,3);
imshow(g);
title('均衡后');
subplot(2,2,4)
imhist(g);
title('直方图均衡');

 

均衡实质是归一化直方图累加求和,还可以用

hnorm=imhist(image)./numel(image);
cdf=cumsum(hnorm);
x=linspace(0,1,256);
plot(x,cdf)

  

 

 

posted @ 2017-03-18 16:13  隅子酱  阅读(780)  评论(0编辑  收藏  举报