![ffa0fca7bbad71fdd97f0a94af7e47fc.png](https://i-blog.csdnimg.cn/blog_migrate/88f9f1e8f7b9512d572ba25d9aae228a.jpeg)
在进行图像灰度处理时,直方图有助于在处理时进行更好的判断。下面对直方图可能用途进行总结如下:
%展示图像的直方图
%image_in为输入图像;b为用于形成直方图的统计堆栈的数目,默认为256
h=imhist(image_in,b);
%归一化直方图
p=imhist(image_in,b)/numel(image_in);
%直方图条状化
h=imhist(image_in,b);
horz=linspace(0,255,25);
bar(horz,h);
%直方图杆状化,fill为可选颜色
h=imhist(image_in,b);
horz=linspace(0,255,25);
stem(horz,h,'fill');
%将直方图顶点连起来
h=imhist(image_in,b);
horz=linspace(0,255,25);
plot(h);
%累积分布函数(cdf)绘制
p=imhist(image_in,b)/numel(image_in);%归一化直方图
cdf=cunsum(p);
x=linspace(0,1,256);
plot(x,cdf);
g=histeq(image_in,256);%直方图均衡化:能够有效增加图像灰度级动态范围的特性
g=adapthisteq(image_in);%对比度受限的自适应直方图均衡,可选参数
g=histeq(image_in,p);%直方图匹配法,p为某个函数图形,下面附带一个p函数作为参考
function p=twomodegauss(m1,sig1,m2,sig2,A1,A2,k)
%%计算一个归一化到单位区域的双模态高斯函数;
%模态均值:m1,m2;
%模态标准方差:sig1,sig2;
%模态的振幅:A1,A2;
%K为偏差值
c1=A1*(1/((2*pi)^0.5)*sig1);
k1=2*(sig1^2);
c2=A2*(1/((2*pi)^0.5)*sig2);
k2=2*(sig2^2);
z=linspace(0,1,256);
p=k+c1*exp(-((z-m1).^2)./k1)+...
c2*exp(-((z-m2).^2)./k2);
p=p./sum(p(:));
![9c6f96f77a83b00b0330168db42cd198.png](https://i-blog.csdnimg.cn/blog_migrate/eec11a321a2d7e4f95fad51af9356849.jpeg)
欢迎关注灵隐杂谈,来这里交流思想!