数字图像处理实验3v2.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字图像处理实验3v2

任课教师:马文娟 《数字图像分析与艺术化处理》 (2012-2013学年第2学期) 实 验 报 告 学号:2011329700132 姓名: 班级:数字媒体与技术11(1) 实验三 图像分割实验 实验项目名称:图像分割实验 实验项目性质:设计性实验 所属课程名称:数字图像分析与艺术化处理 实验计划学时:2 实验目的 进一步理解图像的阈值分割方法和边缘检测方法的原理。 掌握图像基本全局阈值方法的原理并编程实现。 掌握梯度法检测边缘的原理并编程实现。 实验内容和要求 在实验一的工程中实现图像二值化和梯度法检测边缘。 实验主要仪器设备和材料 计算机,VS2012 实验原理 1、图像的二值化的基本原理 图像的二值化处理就是图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效果。 thr表示选取的阈值。二值化的过程就是当原图的像素灰度值大于阈值就将其变白,否则就将其变黑。即将256个亮度等级的灰度图像通过适当的阀值占有非常重要的地位,特别是在实用的图像处理中 如果某特定物体在内部有均匀一致的灰度值,并且其处在一个具有其他等级灰度值的均匀背景下,使用法就可以得到比较的分割效果。如果物体同背景的差别表现不在灰度值上(比如纹理不同),可以将这个差别特征转换为灰度的差别,然后利用选取技术来分割该图像。动态调节实现图像的二值化可动态观察其分割图像的具体结果。 根据对全图使用统一阈值还是对不同区域使用不同阈值,可以分为全局阈值方法(global thresholding)和局部阈值方法(local thresholding,也叫做自适应阈值方法adaptive thresholding);这种与坐标相关的阈值也叫动态阈值 本实验采用基本全局阈值方法,即在整个图像中所有的象素点,其阈值thr相同,具体步骤为: (1)选取一个初始估计值T; (2)用T分割图像。这样便会生成两组像素集合:G1由所有灰度值大于T的像素组成,而G2由所有灰度值小于或等于T的像素组成。 (3)对G1和G2中所有像素计算平均灰度值u1和u2。 (4)计算新的阈值:T=(u1 + u2)/2。 (5)重复步骤(2)到(4),直到得到的T值之差小于一个事先定义的参数T0。 2、梯度法边缘检测 物体的边缘以局部特征不连续性出现,也就是图像局部亮度变化最显著的部分,如,灰度,颜色,纹理结构的突变。物体边缘是区分不同区域的分界处。与边缘锐化类似,常常采用一阶或二阶微分算子实现边缘检测。一阶微分是通过梯度法来实现的。对于图像f(i,j),它在点(i,j)处的梯度是一个矢量,定义为: 利用差分法近似上述公式,得到: 为了便于编程和提高运算,可进一步简化为: 利用差分运算时,图像的第一行和第一列的像素的梯度无法求得,一般用后一行或后一列的梯度值近似代替。微分运算可以增强图像高频分量(边缘等细节),为了检测到清晰的边缘,需设定阈值对运算结果进行处理。公式为: 实验设计步骤 2、图像的阈值分割 步骤一、打开实验一建立的工程空间。 步骤二、按照实验一介绍的方法建立在“图像操作”菜单栏中新建菜单项“二值化(阈值分割)”。 步骤三、按照实验一介绍的方法建立菜单项“二值化”的响应函数OnBinary()。 步骤四、打开响应函数OnBinary(),添加代码。 步骤五、点击(!),编译运行,打开一幅24位或8位bmp图,然后再单击“二值化”,观察效果。 2、梯度法检测边缘 步骤一、按照实验一中的方法在“图像操作”菜单栏中新建“边缘检测(梯度法)”菜单项。 步骤二、添加“边缘检测”的响应函数。 步骤三、在响应函数中添加实现图像检测的功能代码。 获得原图像的首地址及图像的高和宽; 开辟一块内存缓冲区,并初始化为255; 计算图像的像素的梯度,将结果保存在内存缓冲区; 比较像素的梯度是否大于30(阈值可以调整),是则将像素值置为255,否则,将像素值置为0; 将内存中的数据复制到图像数据区。 步骤四、调试运行。 实验代码 void CDIB::ErZhiHua() { int nw = this-GetDIBWidth(); int nh = this-GetDIBHeight(); int i,j; // 定义阈值并赋值为100; int thr=100; if(this-GetNumberOfColors() == 8) { for(j = 0; j nh; j++) for(i = 0; i nw; i++) { if(this-m_pDIBData[j * nw + i] thr) this-m_pDIBData[j * nw + i] = 255; else this-m_pDIBData[j * nw

您可能关注的文档

文档评论(0)

wuyuetian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档