如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
实验四图像分割设计实验一、设计任务与要求1、编程实现下列功能:读出以BMP格式存储的黑白灰度图象并显示,用拉普拉斯算子对图象进行边缘检测,显示处理后图象,以BMP格式存储处理后图象。2、编程实现下列功能:读出以BMP格式存储的黑白灰度图象并显示,用鼠标点击图象上某一点,以灰度相近原则进行区域生长,显示处理后图象,以BMP格式存储处理后图象。二、设计原理与参考电路图像分割基本方法原理参考教材内容:边缘检测,模板匹配,区域生长。三、预习要求与思考题1、在Matlab图像处理工具箱上实现图像的边缘检测,模板匹配,区域生长算法并根据分割效果,进行分析,选择适合的图像分割方法。(1)边缘检测a)在MatlabHelp菜单中,选Demos项。b)打开Toolboxes\ImageProcessing项,选EdgeDetection,并运行。c)选图象Blood、边缘检测方法Sobel,如图1所示。d)按Apply键。e)观察检测到的边界。f)改变阈值,重做(4)-(5)。g)选边缘检测方法Prewitt,重做(4)-(6)。h)选边缘检测方法Roberts,重做(4)-(6)。i)选边缘检测方法LaplacianofGaussian,重做(4)-(6)。j)选其他图象,重做(4)-(9)。图1:图像边界检查工具箱(2)模板匹配a)在Photoshop中打开一黑白灰度图象文件,如图2所示。b)在滤镜菜单其他子菜单中选自定项。c)在自定界面中输入点模板。d)按好键。e)观察处理后图象。f)在编辑菜单中选返回项,恢复原始图象。g)在滤镜菜单其他子菜单中选自定项。h)在自定界面中分别输入线模板、方向模板,重做(4)-(5)。i)在Photoshop中其他黑白灰度图象文件,重做(2)-(8)。图1:Photoshop图像处理2、使用给定的程序程序框架,编写图像边界提取的基本运算函数;使用VisualC++调试边界提起的基本函数,详细了解其代码运行过程和机制;熟悉边界提起在图像识别中的作用,对照观察边界提取前后的图像,分析边界提取的效果及在图像识别中的作用;边界提取基本算法函数如例:Robert算子的边界提取函数见附;3、分析各种分割技术及其效果,设计实验所给图像(实验指导老师提供图像)的分割处理过程及处理目的;四、实验报告要求及注意事项1、实验报告要求(1)实验独立完成,报告要求写出编程及调试结果;(2)对实验要求的设计任务,要求在系统上调试并在报告中写出实现方法和代码;(3)实验总结,分析本次实验及过程,实验过程中出现的问题及解决办法。2、注意事项(1)实验独立完成,实验结束后请保存个人设计的工程以备下次实验使用,并退出VC编译环境系统,关闭电脑并检查设备及电源;(2)离开实验室前请报告实验指导老师,并请老师检查设备。(3)实验室所用共享图库,请不要做任何改动,访问图库后,拷贝所需图像到本机,然后进行实验。五、主要元器件、仪器、仪表电脑、医学图像处理系统代码、生物医学工程专业图库等。六、附:Robert算子的边界提取函数BOOLWINAPIRobertDIB(LPSTRlpDIBBits,LONGlWidth,LONGlHeight){//指向源图像的指针LPSTRlpSrc;//指向缓存图像的指针LPSTRlpDst;//指向缓存DIB图像的指针LPSTRlpNewDIBBits;HLOCALhNewDIBBits;//循环变量longi;longj;//像素值doubleresult;unsignedcharpixel[4];//暂时分配内存,以保存新图像hNewDIBBits=LocalAlloc(LHND,lWidth*lHeight);if(hNewDIBBits==NULL){//分配内存失败returnFALSE;}//锁定内存lpNewDIBBits=(char*)LocalLock(hNewDIBBits);//初始化新分配的内存,设定初始值为255lpDst=(char*)lpNewDIBBits;memset(lpDst,(BYTE)255,lWidth*lHeight);//使用水平方向的结构元素进行腐蚀for(j=lHeight-1;j>0;j--){for(i=0;i<lWidth-1;i++){//由于使用2×2的模板,为防止越界,所以不处理最下边和最右边的两列像素//指向源图像第j行,第i个象素的指针lpSrc=(char*)lpDIBBits+lWidth*j+i;/