- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字图像处理上机作业一.
数字图像处理上机作业一
设计一个程序,绘制出一幅灰度图象的直方图。
Solution:
代码及代码的说明:
%作用:返回灰度矩阵a,并画出直方图
function a=zhifangtu(x) % x为要分析的图像名加单引号
I=imread(x);
b=size(I);
a=zeros(1,256); % a为一个1*256的矩阵分别记录灰度为0到255的像
%的个数
for m=1:b(1) %两个for语句将整张图的所有像素都扫描一遍
for n=1:b(2)
a(I(m,n)+1)= a(I(m,n)+1)+1; %将灰度为I(m,n)的像素个数存储在%a(I(m,n)+1)中,因为matlab里没有 %a(0)
end
end
n=0:255;
bar(n,a); %画出直方图
s=sum(a) %查看直方图的总的面积等于这张图的总像素值
实验结果及分析:
在命令窗口中输入zhifangtu(Lenna.bmp)
返回s =262144,以及灰度矩阵a,同时有如下直方图输出:
分析及结论:
在命令窗口中用size命令可查知Lenna.bmp是512*512的,返回的s =262144恰等于512*512,说明所编的直方图的程序恰将所有的像素点都统计了,直方图的总面积等于像素总数。直方图的作用也就是将一张图中不同灰度值对应像素数的一个统计。
在这个程序的编写中应注意a(I(m,n)+1)= a(I(m,n)+1)+1 不能写成a(I(m,n))= a(I(m,n))+1 ,应为在matlab中矩阵表示没有a(0),若某个像素点的灰度值是0,就会出错,故应写成a(I(m,n)+1)= a(I(m,n)+1)+1形式。
2.对同一场景但模糊程度不一样的三张数字图像绘制出其直方图, 计算每一幅图象所有像素灰度的方差。图象的清晰度同灰度方差什么关系?
Solution:
代码及代码的说明:
%作用:绘出模糊程度不一样的三张数字图像的直方图,并输出各自灰度方差
I1=imread(tu1.bmp);
I1=rgb2gray(I1); %转换为灰度图像
imwrite(I1,tu0.bmp); %由于直方图只能对灰度图作用,故先将其转为灰度图
subplot(2,2,1);zhifangtu(tu0.bmp);
title(tu1直方图); %绘出tu1.bmp的直方图
k1=size(I1);
I1=single(I1);I1=(I1-mean(mean(I1))).^2; %个像素灰度值减去平均灰
%值后再平方
t1=sum(sum(I1))/k1(1)/k1(2), %输出tu1.bmp的所有像素灰度的方差
subplot(2,2,2);zhifangtu(tu2.bmp);
title(tu2直方图); %绘出tu2.bmp的直方图
I2=imread(tu2.bmp);
k2=size(I2);
I2=single(I2);I2=(I2-mean(mean(I2))).^2; %个像素灰度值减去平均灰度值后再%平方
t2=sum(sum(I2))/k2(1)/k2(2), %输出tu2.bmp的所有像素灰度的方差
subplot(2,2,3);zhifangtu(tu3.bmp);
title(tu3直方图); %绘出tu3.bmp的直方图
I3=imread(tu3.bmp);
k3=size(I3);
I3=single(I3);I3=(I3-mean(mean(I3))).^2; %个像素灰度值减去平均灰度值%后再平方
t3=sum(sum(I3))/k3(1)/k3(2), %输出tu3.bmp的所有像素灰度的方差
figure;
subplot(2,2,1);imshow(tu1.bmp);
title(tu1图); %绘出tu1.bmp的图
subplot(2,2,2);imshow(tu2.bmp);
title(tu2图); %绘出tu1.bmp的图
subplot(2,2,3);imshow(tu3.bmp);
title(tu3图); %绘出tu1.bmp的图
实验结果及分析:
上述代码执行
文档评论(0)