欢迎来到天天文库
浏览记录
ID:41685473
大小:107.10 KB
页数:8页
时间:2019-08-30
《数字图像处理,考试试题答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、HubeiUniversityofEducation《数字图像》期末考试班级:12级计科3班学号:〔250312025姓名:郝耀峰编写程序,读入下图并输出图中所有图形的周长,即图像边缘的长度(单位:个像素)。1•在menu菜单栏的边缘与轮廓下加入计算周长菜单项,设置计算周长菜单项ID为ID.Perimeter)几何变換9)正交变换②圏垛堵强(D形态学变换(M)边秦与鸵廓9)圏嫌分析(A)圏竦复原(£Hough变换但)►蛇廓探取©种子►轮廓跟踪CD计算周长2.在edegecontour.h中加入声明计算周长函数long
2、WINAPILongCLPSTRIpDIBBits,LONGIWidth,LONGIHeight);3.在edgecontour,cpp中加入longWINAPILong(LPSTRIpDIBBits,LONGIWidth,LONGIHeight){//指向源图像的指针//指向源图像的指针LPSTRIpSrc;//指向缓存图像的指针LPSTRIpDst;//指向缓存DIB图像的指针LPSTRIpNewDIBBits;HLOCALhNewDIBBits;//循环变量longi;longj;//像素值doubIeresu
3、It;unsignedcharpixel;//暂时分配内存,以保存新图像hNewDIBBits=LocalAlloc(LHND,IWidth*IHeight);if(hNewDIBBits==NULL){//分配内存失败return0;}//锁定内存IpNewDIBBits=(char*)LocaILock(hNewDIBBits);//初始化新分配的内存,设定初始值为255IpDst=(char*)IpNewDIBBits;memset(IpDst,(BYTE)255,IWidth*IHeight);//灰度为0的
4、像素点的个数longintTota1=0;//每行for(i=1;i5、_1View.cpp中声明_■■■2匡6、ch1_1Docxpp旨ch1_1Viewxpp園ChildFrm.cpp鬲detect.cppfmoam0N_C0MMAND(ID_Perimeter,OnPerimeter)0N_C0MMAND(ID_C0DE_LZW,OnCodeLzw)ONZcOMMAND(ID_CODEZlLZW,OnCodellzw)0N_C0MMAND(ID_EDGE_FILL2,0nEdgEFill2)ON_COMMAND(IDPerineter,OnPerimeter)//}}AFX_MSG_7、MAPllt-snrlzbr^rlni--innonmmsndc3.在ch1_1View.cpp中加入voidCCh1_1View::0nPerimeter()方法处理单击事件voidCCh1_1View::OnPerimeter(){//计算周长//获取文档CCh1_1Doc*pDoc=GetDocument();//指向DIB的指针LPSTRIpDIB;//指向DIB象素指针LPSTRIpDIBBits;//锁定DIBIpDIB=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHDIB8、());//判断是否是8-bpp位图(这里为了方便,只处理8-bpp位图的边缘检测,其它的可以类推)if(::DIBNumColors(lpDIB)!=256){//提示用户MessageBoxC目前只支持256色位图的运算!”,”系统提示”,MB_ICONINFORMATION9、MB_0K);//解除锁定::GlobalUnlock((HGLOBAL)pDoc->GetHDIB());//返回return;}//更改光标形状BeginWaitCursor();//找到DIB图像象素起始位置IpDIBBits=::F10、indDIBBits(IpDIB);//调用RobertDIB()函数对DIB进行边缘检测//if(RobertDIB(IpDIBBits,WIDTHBYTES(::DIBWidth(IpDIB)*8),::DIBHeight(lpDIB)))longsum二Long(IpDIBBits,WIDTHBYTES(::DIBWidth(IpDIB)
5、_1View.cpp中声明_■■■2匡
6、ch1_1Docxpp旨ch1_1Viewxpp園ChildFrm.cpp鬲detect.cppfmoam0N_C0MMAND(ID_Perimeter,OnPerimeter)0N_C0MMAND(ID_C0DE_LZW,OnCodeLzw)ONZcOMMAND(ID_CODEZlLZW,OnCodellzw)0N_C0MMAND(ID_EDGE_FILL2,0nEdgEFill2)ON_COMMAND(IDPerineter,OnPerimeter)//}}AFX_MSG_
7、MAPllt-snrlzbr^rlni--innonmmsndc3.在ch1_1View.cpp中加入voidCCh1_1View::0nPerimeter()方法处理单击事件voidCCh1_1View::OnPerimeter(){//计算周长//获取文档CCh1_1Doc*pDoc=GetDocument();//指向DIB的指针LPSTRIpDIB;//指向DIB象素指针LPSTRIpDIBBits;//锁定DIBIpDIB=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHDIB
8、());//判断是否是8-bpp位图(这里为了方便,只处理8-bpp位图的边缘检测,其它的可以类推)if(::DIBNumColors(lpDIB)!=256){//提示用户MessageBoxC目前只支持256色位图的运算!”,”系统提示”,MB_ICONINFORMATION
9、MB_0K);//解除锁定::GlobalUnlock((HGLOBAL)pDoc->GetHDIB());//返回return;}//更改光标形状BeginWaitCursor();//找到DIB图像象素起始位置IpDIBBits=::F
10、indDIBBits(IpDIB);//调用RobertDIB()函数对DIB进行边缘检测//if(RobertDIB(IpDIBBits,WIDTHBYTES(::DIBWidth(IpDIB)*8),::DIBHeight(lpDIB)))longsum二Long(IpDIBBits,WIDTHBYTES(::DIBWidth(IpDIB)
此文档下载收益归作者所有