数字图像处理 实验报告
学号:04211734
姓名:付永钦
日期:2014/6/7
1. 图像直方图统计
①原理:灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。
通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。
②算法:
clear all
PS=imread('girl-grey1.jpg'); %读入JPG彩色图像文件 figure(1);subplot(1,2,1);imshow(PS);title('原图像灰度图');
[m,n]=size(PS); %测量图像尺寸参数
GP=zeros(1,256); %预创建存放灰度出现概率的向量
for k=0:255
GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率 end
figure(1);subplot(1,2,2);bar(0:255,GP,'g') %绘制直方图
axis([0 255 min(GP) max(GP)]); title('原图像直方图') xlabel('灰度值') ylabel('出现概率')
③处理结果:
1 / 18
原图像直方图0.040.035原图像灰度图0.030.025出现概率0.020.0150.010.00500100灰度值200
④结果分析:由图可以看出,原图像的灰度直方图比较集中。
2. 图像的线性变换
①原理:直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主
要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。
②算法:
clear all
%一,图像的预处理,读入彩色图像将其灰度化
PS=imread('girl-grey1.jpg');
figure(1);subplot(2,2,1);imshow(PS);title('原图像灰度图');
%二,绘制直方图
[m,n]=size(PS); %测量图像尺寸参数
GP=zeros(1,256); %预创建存放灰度出现概率的向量
for k=0:255
2 / 18
GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率 end
figure(1);subplot(2,2,2);bar(0:255,GP,'g') %绘制直方图 axis([0 255 min(GP) max(GP)]); title('原图像直方图') xlabel('灰度值') ylabel('出现概率')
%三,直方图均衡化 S1=zeros(1,256); for i=1:256 for j=1:i
S1(i)=GP(j)+S1(i); %计算Sk end end
S2=round((S1*256)+0.5); %将Sk归到相近级的灰度
for i=1:256
GPeq(i)=sum(GP(find(S2==i))); %计算现有每个灰度级出现的概率 end
figure(1);subplot(2,2,4);bar(0:255,GPeq,'b') %显示均衡化后的直方图
axis([0 255 min(GPeq) max(GPeq)]); title('均衡化后的直方图') xlabel('灰度值') ylabel('出现概率')
%四,图像均衡化 PA=PS;
for i=0:255
PA(find(PS==i))=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素 end
figure(1);subplot(2,2,3);imshow(PA) %显示均衡化后的图像 title('均衡化后图像')
imwrite(PA,'PicEqual.bmp'); ③处理结果:
3 / 18