本文主要参照 http://blog.csdn.net/timidsmile/article/details/6909691
ps:个人感觉,直方图均衡化本质就是确定 一个灰度映射关系,为寻找这个关系呢,正好引用了灰度的累积概率密度函数
借用http://blog.csdn.net/timidsmile/article/details/6909691中的图片
其中 第二幅图是执行参考博客中的代码 得到的,第三幅是自己运行得到的,还是有些差别的
参考资料
1.http://zh.wikipedia.org/wiki/直方图均衡化
2.数字图像处理 冈萨雷斯版本
3.http://blog.csdn.net/timidsmile/article/details/6909691
ps:由于不知道怎么回事,代码黏贴后,图片变成链接格式了,(全跑代码里面去了),只好放上面来了,求好心人告知,该怎么排版
function my_histequ() %zhyh2010 2014-3-25 % 自己编写直方图均衡化程序 %% initialize close all clear all clc src=imread('1.jpg'); imshow(src); title('original picture') src_gray=rgb2gray(src); figure imshow(src_gray) title('gray picture') src_gray_final=gray_histequ(src_gray); figure,imshow(src_gray_final) title('灰度均衡化') figure,imhist(src_gray_final) src_color_r=gray_histequ(src(:,:,1)); src_color_g=gray_histequ(src(:,:,2)); src_color_b=gray_histequ(src(:,:,3)); src_color(:,:,1)=src_color_r; src_color(:,:,2)=src_color_g; src_color(:,:,3)=src_color_b; figure subplot(1,3,1),imshow(src_color_r),title('red') subplot(1,3,2),imshow(src_color_g),title('green') subplot(1,3,3),imshow(src_color_b),title('blue') figure,imshow(src_color),title('彩色均衡化')子程序function src_gray_final=gray_histequ(src_gray) %zhyh2010 2014-3-25 % 单通道均衡化 %% 统计灰度信息 [length width]=size(src_gray); gray_info=zeros(1,256); for ii=1:length for jj=1:width gray_info(src_gray(ii,jj)+1)=gray_info(src_gray(ii,jj)+1)+1; end end %% 各个级别的灰度累计 gray_sum(1)=gray_info(1); for ii=2:256 gray_sum(ii)=gray_info(ii)+gray_sum(ii-1); end %% calculate the gray translation for ii=1:256 gray_final(ii)=uint8(255*gray_sum(ii)/(length*width)); end %% result for gray pic for ii=1:length for jj=1:width src_gray_final(ii,jj)=gray_final(src_gray(ii,jj)+1); end end