绘制图像直方图
2015-09-03 17:58
405 查看
刚开始学matlab,昨天在看程序的忘记把彩色图像转换成灰度图像再提取图像。
clear all;
I = imread('D:\frame1.png');
I=rgb2gray(I); %灰度化
%绘制直方图
[m,n]=size(I);
GP=zeros(1,256);
for k=0:255
GP(k+1)=length(find(I==k))/(m*n); %计算每级灰度出现的概率,将其存入GP
end
%三,直方图均衡化
S1=zeros(1,256);
for i=1:256
for j=1:i
S1(i)=GP(j)+S1(i);
end
end
S2=round((S1*256)+0.5); %将Sk归到相近级的灰度
for i=1:256
GPeq(i)=sum(GP(find(S2==i)));%计算现有每个灰度级出现的概率
end
figure;
subplot(221);bar(0:255,GP,'b');
title('原图像直方图')
subplot(222);bar(0:255,GPeq,'b')
title('均衡化后的直方图')
X=I;
for i=0:255
X(find(I==i)) = S2(i+1);
end
subplot(223);imshow(I);
title('原图像') ;
subplot(224);imshow(X);
title('直方图均衡后的图像');
clear all;
I = imread('D:\frame1.png');
I=rgb2gray(I); %灰度化
%绘制直方图
[m,n]=size(I);
GP=zeros(1,256);
for k=0:255
GP(k+1)=length(find(I==k))/(m*n); %计算每级灰度出现的概率,将其存入GP
end
%三,直方图均衡化
S1=zeros(1,256);
for i=1:256
for j=1:i
S1(i)=GP(j)+S1(i);
end
end
S2=round((S1*256)+0.5); %将Sk归到相近级的灰度
for i=1:256
GPeq(i)=sum(GP(find(S2==i)));%计算现有每个灰度级出现的概率
end
figure;
subplot(221);bar(0:255,GP,'b');
title('原图像直方图')
subplot(222);bar(0:255,GPeq,'b')
title('均衡化后的直方图')
X=I;
for i=0:255
X(find(I==i)) = S2(i+1);
end
subplot(223);imshow(I);
title('原图像') ;
subplot(224);imshow(X);
title('直方图均衡后的图像');
相关文章推荐
- PHP GD 图像处理组件的常用函数总结
- PHP图像处理之imagecreate、imagedestroy函数介绍
- jsvascript图像处理―(计算机视觉应用)图像金字塔
- Javascript图像处理思路及实现代码
- PHP图像处理之使用imagecolorallocate()函数设置颜色例子
- java数字图像处理基础使用imageio写图像文件示例
- javascript图像处理―边缘梯度计算函数
- Javascript图像处理―阈值函数实例应用
- Javascript图像处理―虚拟边缘介绍及使用方法
- PHP图像处理类库及演示分享
- php图像处理函数大全(推荐收藏)
- Javascript图像处理―图像形态学(膨胀与腐蚀)
- Javascript图像处理―平滑处理实现原理
- VTK学习笔记之图像处理
- vtk 图像处理 多种 操作
- 05-VTK在图像处理中的应用(2)
- 新手上路之图像处理学习心得
- 数字图像处理的基础
- 数字图像处理的基础
- 图像的放大与缩小(1)——等距采样法