( 2016—2017学年 第 一 学期 )
课程名称:数字图像基础 开课实验室: 2016年 月 日 年级、专业、班 实验项目名称 教师评语 2016年 11月 16日 一、实验目的及内容
目的:掌握和熟悉Matlab编程环境及语言;掌握直方图统计的算法和用途。 内容:
1. 调试教材P25页例2.1输出类似教材图2.3的结果。
2. 调试教材P33页例2.4,编写一个程序,分别使用imhist、bar、stem、plot四种方式
显示一幅灰度图像的直方图 3. 调试教材P37页例2.5。
4. 直方图均衡化的公式如下所示:
skT(rk)学号 姓名 成绩 图像增强(1) A.了解□ A.强 □ A.达到□ A.规范□ A.详细□ 指导教师 B.基本了解□ B.中等 □ B.基本达到□ B.基本规范□ B.一般 □ C.不了解□ C.差 □ C.未达到□ C.不规范□ C.没有 □ 该同学是否了解实验原理: 该同学的实验能力: 该同学的实验是否达到要求: 实验报告是否规范: 实验过程是否详细记录: 教师签名: j1kpr(rj)n
j1knj根据上式及课堂所讲直方图均衡化原理及方法,自己写一个Matlab函数实现对灰度图像的直方图均衡化功能(类似于Matlab提供的histeq函数)。(提示:实现中使用Matlab函数cumsum(P38)可能会使程序简单些)。 二、要求
1. 描述直方图的概念并解释直方图均衡化原理。
-1-
2. 程序结构清晰,运行结果正确。
3. 对于第1、2、3小题在实验报告中给出所调试的程序,及其运行结果,对第4小题
描述程序的设计、实现和结果,并对结果进行分析。
-2-
一、描述直方图的概念并解释直方图均衡化原理。
直方图的概念:直方图是用来量化曝光量,能够使我们真实、直观地看出照片曝光情况的一张二维坐标系,其横轴代表的是图像中的亮度,从左向右,从全黑逐渐过渡到全白;纵轴代表的则是图像中处于这个亮度范围的像素的相对数量。当直方图中的黑色色块偏向于左边时,说明这张照片的整体色调偏暗,也可以理解为照片欠曝。而当直方图中的黑色色块集中在右边时,,说明这张照片整体色调偏亮,除非特殊构图需要,,否则我们可以理解为照片过曝。
直方图均衡化原理:直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。
二、程序代码以及运行结果 第一题: 代码:
f=imread('breast.tif'); >> imshow(f)
-3-
>> g1=imadjust(f,[0 1],[1 0]); >> imshow(g1)
>> g2=imadjust(f,[0.5 0.75],[0 1]); >> imshow(g2)
>> g3=imadjust(f,[ ],[ ],2);
-4-
>> imshow(g3)
>> g=imadjust(f,stretchlim(f),[ ]);
>> imshow(g)
>>g=imadjust(f,stretchlim(f),[1 0]); >> imshow(g)
-5-
第二题:
代码:
f=imread('pollen.tif'); >> imhist(f); >> h=imhist(f,25);
>> horz=linspace(0,255,25); >> bar(horz,h)
>> axis([0 255 0 60000]) >> set(gca,'xtick',0:50:255)
-6-
>> set(gca,'ytick',0:20000:60000) >> stem(horz,h,'fill') >> axis([0 255 0 60000]) >> set(gca,'xtick',0:50:255) >> set(gca,'ytick',0:20000:60000) >> hc=imhist(f);
>> plot(hc)%Use the default values. >> axis([0 255 0 15000]) >> set(gca,'xtick',0:50:255) >> set(gca,'ytick',0:2000:15000) 截图:
-7-
第三题:
代码:
f=imread('pollen.tif'); >> imshow(f); >> figure,imhist(f) >> ylim('auto') >> g=histeq(f,256); >> figure,imshow(g); >> figure,imhist(g); >> ylim('auto') >> 截图:
-8-
第四题:
代码:
function E = Example( I )
%UNTITLED 此处显示有关此函数的摘要 % 此处显示详细说明
[m,n]=size(I); GP=zeros(1,256); for k=0:255
GP(k+1)=length(find(I==k))/(m*n); 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); for i=1:256
GPeq(i)=sum(GP(find(S2==i))); end
figure(1);bar(0:255,GP,'b'); figure(2);bar(0:255,GPeq,'b');
X=I;
-9-
for i=0:255
X(find(I==i))=S2(i+1); end
figure(3);imshow(I); figure(4);imshow(X); end
>> G=imread('pollen.tif'); >> Example(G) >> 截图: 原图像直方图:
-10-
原图像均衡图:
-11-
原图像:
-12-
原图像均衡化:
-13-
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务