matlab 绘制直方图的函数实现
2017-04-19 00:11
387 查看
一、matlab 绘制直方图:
1.
2.
EXAMPLE:
3.
二、直方图均衡化:
系统均衡化的函数:
function paint(f) [m,n]=size(f);%m,n分别存储图像像素点的长度与宽度 g=zeros(1,256); for i=1:256%图像的横轴取值从1-256 g(i)=length(find(f==i))/(m*n);%显示图像像素点在直方图纵轴的频率 end; bar(0:255,g,'b');系统函数绘制直方图:
1.
h=imhist(f,b);%f为灰度图像,b是是用于形成直方图的“收集箱”的个数。若b未包含在此变量中,则其默认值为256
2.
bar(horse,v,width);%绘制条形图形式的直方图,v,行向量,包含被绘制的点。horz与v有着相同维数的向量,包含水平标度值的增量width是一个值在0-1之间的数
EXAMPLE:
h=imhist(f); h1=h(1:10:256); horz=1:10:256; bar(horse,h1);%这里width的默认值是0.8.大家可以多的尝试width 的值在0-1之间的变化对条形直方图的影响
3.
stem(horse,v,'属性'...);%这里的horz和v的作用与bar相同,不同的是stem增加了一个属性选项,可以设置绘制直方图的颜色,线段的形式,符号。EXAMPLE:
h=imhist(f); h1=h(1:10:256); horz=1:10:256; stem(hora,h1,'color','r');%绘制出线段为红色的直方图显示
二、直方图均衡化:
x=rgb2gray(imread('p1.jpg')); [m,n]=size(x); p=zeros(1,256); for i=0:255 p(i+1)=length(find(x==i))/(m*n); end subplot(2,2,1); bar(0:255,p,'b'); title('原图直方图'); s=zeros(1,256); for i=1:256 for j=1:i s(i)=p(j)+s(i); end end a=round(s*255); %四舍五入函数进行像素点的取整 for i=0:255 GPeq(i+1)=sum(p(find(a==i))); %利用求和函数对直方图纵轴坐标赋值 end subplot(2,2,3); bar(0:255,GPeq,'b') title('均衡化后的直方图');
系统均衡化的函数:
g=histeq(f,nlev);%f为输入图像,nlev为输出图像指定的灰度级,一般默认为64EXAPLE:
f=imread('1.jpg'); g=rgb2gray(f); figure,imhist(g); ylim('auto') g1=histeq(f,256); figure,imshow(g1); figure,imhist(g1); ylim('auto')
相关文章推荐
- 使用axes函数在matlab绘图中实现图中图的绘制
- 【Matlab】hist( )函数、bar( )函数绘制直方图
- 图像放缩 (matlab实现,不用自带的函数)
- matlab入门1--利用plot函数绘制正弦函数图形
- 第三章 信号系统分析基础--sigexp--本函数实现绘制复指数信号时域波形
- matlab中绘制带有errorbar误差标的曲线和直方图的方法
- 利用matlab实现图的绘制、保存、关闭
- 由滤波器系数绘制尺度函数和小波函数图像的Matlab程序
- cocos2d实现画笔功能及常用的绘制函数
- opencv 旋转图像函数实现 等同于matlab里的rotate() (注:旋转后图像变大,超出部分填为黑色)
- matlab GUI callback 函数实现
- MATLAB实现频数直方图——hist的使用
- 4.4 绘制根轨迹的MATLAB函数
- 终于实现c#调用matlab函数(ZZ)
- 在matlab内绘制函数图像
- 使用matlab绘制数学函数
- 【转】由滤波器系数绘制尺度函数和小波函数图像的Matlab程序
- MATLAB中绘制灰度图像的直方图
- Matlab中使用varargin来实现参数可变的函数
- MATLAB画图入门篇--各种基本图形绘制的函数与实例