《计算机图形图像处理(设计)》实验报告.doc
《计算机图形图像处理》实验报告册
学 院:
专 业:地理信息系统
:。
1. 彩色图像的均衡化步骤:
统计原图像素每个像素的个数
统计原图像
家里灰度级得映射规则
将原图每个像素点的灰度映射到新图
clear?all??
I=imread('F:\computer\哪吒.jpg?');????????????????%读入JPG彩色图像文件??
imshow(I)??????????????????????????????????%显示出来???
title('')??
I_gray?=?rgb2gray(I);?%灰度化后的数据存入数组??
imwrite(I_gray,'.bmp');?%保存灰度图像??
figure,imshow(I_gray);??
title('灰度图')??
??
[height,width]=size(I_gray);??%测量图像尺寸参数??
p=zeros(1,256);????????????????????????????%预创建存放灰度出现概率的向量??
for?i=1:height??
????for?j=1:width??
?????p(I_gray(i,j)?+?1)?=?p(I_gray(i,j)?+?1)??+?1;??
????end??
end??
s=zeros(1,256);??
s(1)=p(1);??
for?i=2:256??
?????s(i)=p(i)?+?s(i-1);?%统计图像中
end??
??
for?i=1:256??
????s(i)?=?s(i)*256/(width*height);?%求灰度映射函数??
????if?s(i)?>?256??
????????s(i)?=?256;??
????end??
end??
??
%图像均衡化??
I_equal?=?I;??
for?i=1:height??
????for?j=1:width??
?????I_equal(i,j)?=?s(?I(i,j)?+?1);??
????end??
end??
figure,imshow(I_equal)???????????????????????????%显示均衡化后的图像???
title('均衡化后图像')??
imwrite(I_equal,'.bmp');??
结果显示如下:
2对于灰度图的直方图均衡化:
有些图像在低值灰度区间上频率较大,使得图像中较暗区域中的细节看不清楚。这时可以通过直方图均衡化将图像的灰度范围分开,并且让灰度频率较小的灰度级变大,通过调整图像灰度值的动态范围,自动地增加整个图像的对比度,使图像具有较大的反差,细节清晰。
%直方图均衡化????
clear;??
I?=?imread('gray.bmp');????
[height,width]?=?size(I);????
figure????
subplot(221)????
imshow(I)%显示原始图像????
subplot(222)????
imhist(I)%显示原始图像直方图????
????
%进行像素灰度统计;????
s?=?zeros(1,256);%统计各灰度数目,共256个灰度级????
for?i?=?1:height????
????for?j?=?1:?width????
????????s(I(i,j)?+?1)?=?s(I(i,j)?+?1)?+?1;%对应灰度值像素点数量增加一????
????end????
end????
%计算灰度分布密度????
p?=?zeros(1,256);????
for?i?=?1:256????
????p(i)?=?s(i)?/?(height?*?width?*?1.0);????
end????
%计算累计直方图分布????
c?=?zeros(1,256);????
c(1)?=?p(1);??
for?i?=?2:256?????
????????c(i)?=?c(i?-?1)?+?p(i);????
end????
%累计分布取整,将其数值归一化为1~256???
c?=?uint8(255?.*?c?+?0.5);????
%对图像进行均衡化??
for?i?=?1:height????
????for?j?=?1:?width????
????????I(i,j)?=?c(I(i,j)+1);????
????end????
end????
??
subplot(223)