



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 图像二值化实验目的:掌握在计算机上进行灰度图象二值化处理,包括直方图法、微分直方图方法等;实验要求:1编写图像二值化的C语言程序以及相应的显示程序。(直方图法和微分直方图法)2对指定图象进行直方图法二值化处理(T=整幅图像灰度值的平均值),将原始图象及二值化后的图象都显示于屏幕上,查看图像分割的效果。3对指定图象进行直方图法二值化处理(T取大于或小于整幅图像灰度值的平均值的某一个值),将原始图象及二值化后的图象都显示于屏幕上,查看图像分割的效果,与2的结果进行比较。 4、对指定图象进行微分直方图法二值化处理,将原始图象及二值化后的图象都显示于屏幕上,查看图像分割的效果,并与2的结果进行比较。实验内容:(1)直方图法二值化处理(T=图像A2灰度值的平均值)核心C语言程序:enchence() unsigned int x,y,a,b,c,d; long data1256,data=0; for(c=0;c256;c+) data1c=0; for(b=0;b64;b+) for(a=0;a64;a+) data1*(buf+b*64+a)+; for(d=0;d256;d+) data=data+data1d*d; data=data/4096; /*以图灰度值和的平均值作为阈值进行图象二值化*/ for(b=0;b64;b+) for(a=0;a64;a+) if(*(buf+b*64+a)data) *(buf+b*64+a)=125; else *(buf+b*64+a)=255; for(y=0;y64;y+) for(x=0;x64;x+) putpixel2(x*2+10,y*2+150,*(buf+(long)y*64+x); putpixel2(x*2+11,y*2+150,*(buf+(long)y*64+x); putpixel2(x*2+10,y*2+151,*(buf+(long)y*64+x); putpixel2(x*2+11,y*2+151,*(buf+(long)y*64+x); 运行结果: (2)直方图法二值化处理(T取小于整幅图像灰度值的平均值的某个值)核心程序:enchence() unsigned int x,y,a,b,c,d; long data1256,data=0; for(c=0;c256;c+) data1c=0; for(b=0;b64;b+) for(a=0;a64;a+) data1*(buf+b*64+a)+; for(d=0;d256;d+) data=data+data1d*d; data=data/4096-10; /*以一个小于图灰度值和的平均值作为阈值进行图象二值化*/ for(b=0;b64;b+) for(a=0;a64;a+) if(*(buf+b*64+a)data) *(buf+b*64+a)=0; else *(buf+b*64+a)=255; for(y=0;y64;y+) for(x=0;x64;x+) putpixel2(x*2+10,y*2+150,*(buf+(long)y*64+x); putpixel2(x*2+11,y*2+150,*(buf+(long)y*64+x); putpixel2(x*2+10,y*2+151,*(buf+(long)y*64+x); putpixel2(x*2+11,y*2+151,*(buf+(long)y*64+x); 运行结果:(3)直方图法二值化处理(T取大于整幅图像灰度值的平均值的某个值)核心程序:enchence() unsigned int x,y,a,b,c,d; long data1256,data=0; for(c=0;c256;c+) data1c=0; for(b=0;b64;b+) for(a=0;a64;a+) data1*(buf+b*64+a)+; for(d=0;d256;d+) data=data+data1d*d; data=data/4096+20; /*以一个大于图灰度值和的平均值作为阈值进行图象二值化*/ for(b=0;b64;b+) for(a=0;a64;a+) if(*(buf+b*64+a)data) *(buf+b*64+a)=0; else *(buf+b*64+a)=255; for(y=0;y64;y+) for(x=0;x64;x+) putpixel2(x*2+10,y*2+150,*(buf+(long)y*64+x); putpixel2(x*2+11,y*2+150,*(buf+(long)y*64+x); putpixel2(x*2+10,y*2+151,*(buf+(long)y*64+x); putpixel2(x*2+11,y*2+151,*(buf+(long)y*64+x);运行结果:(4) 微分直方图法二值化处理核心程序:enchence() unsigned int x,y,a,b,c,d,m,k; long data3256,data2=0,data44096; for(c=0;c256;c+) data3c=0 ; /*微分累加和存放数组初始化*/ c=0;for(b=0;b64;b+) for(a=0;a64;a+) data4b*64+a=*(buf+b*64+a); /*开辟一个数组存放各个灰度级数*/for(b=0;b64;b+)for(a=0;a64;a+) data3*(buf+b*64+a)=data3*(buf+b*64+a)+(abs(*(buf+b*64+a)-*(buf+(b-1)*64+a-1)+abs(*(buf+b*64+a)-*(buf+(b-1)*64+a)+abs(*(buf+b*64+a)-*(buf+b*64+a-1)+abs(*(buf+b*64+a)-*(buf+b*64+a+1)+abs(*(buf+b*64+a)-*(buf+(b-1)*64+a+1)+abs(*(buf+b*64+a)-*(buf+(b+1)*64+a-1)+abs(*(buf+b*64+a)-*(buf+(b+1)*64+a)+abs(*(buf+b*64+a)-*(buf+(b+1)*64+a+1)/8; /*微分累加和*/ d=0; data2=data30; for(k=1;k256;k+) if(data2data3k) data2=data3k; d=k; /*取最大微分和的灰度值为梯度值*/ for(b=0;b64;b+) for(a=0;a64;a+) if(*(buf+b*64+a)d) *(buf+b*64+a)=0; else *(buf+b*64+a)=255; /*进行二值化分割*/ for(y=0;y64;y+) for(x=0;x64;x+) putpixel2(x*2+108,y*2+12,*(buf+(long)y*64+x); putpixel2(x*2+109,y*2+12,*(buf+(long)y*64+x); putpixel2(x*2+108,y*2+13,*(buf+(long)y*64+x); putpixel2(x*2+109,y*2+13,*(buf+(long)y*64+x); 运行结果:实验小结:对比实验要求2、3的结果可以看出,对于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专利申请授权管理办法
- 网网络交易管理办法
- 谷歌科技创新管理办法
- 羊肺炎防治管理办法
- 个人外汇管理办法分类
- 中国志愿活动管理办法
- 贵重原材料管理办法
- 个人信贷发放管理办法
- 专业调整优化管理办法
- 街办网格巡查管理办法
- GB/T 34487-2017结构件用铝合金产品剪切试验方法
- GB/T 31703-2015陶瓷球轴承氮化硅球
- 绿色黑板卡通风初中数学开学第一课PPT模板
- 水泥熟料生产工艺及设备课件
- 代运营协议合同范本
- 浙美版美术三年级上册全册教案
- 座位表模板(空白)
- 部编版高一语文必修上册教学计划
- 青岛版六三制四年级上册数学1万以上数的认识和读法教学课件
- DB37T 3591-2019 畜禽粪便堆肥技术规范
- 私企接待应酬管理制度(3篇)
评论
0/150
提交评论