计算机图形图像设计怎么写报告,《计算机图像处理》课程设计报告

《《计算机图像处理》课程设计报告》由会员分享,可在线阅读,更多相关《《计算机图像处理》课程设计报告(9页珍藏版)》请在人人文库网上搜索。

1、计算机图像处理课程设计报告题目 灰值图像形态学 专业 计算机科学与技术 班级 学号 姓名 指导教师签名 华东理工大学信息学院计算机系2013年5月15日一. 课程设计题目灰值图像形态学二. 日期2013.4.3-2013.5.8三. 环境(操作系统,开发语言)操作系统是Windows开发语言是Visual C+ 语言四. 设计内容(设计要求)(1) 开发一个基于Visual C+.NET 2003(或更高版本)MFC的图像的形态学处理的程序,必须用CImage类作为图像处理的对象。(2) 程序必须具备的功能:a) 可选择文件名,读入并显示一张原始图像文件。b) 在显示的原始图像旁边显示至少二张。

2、不同的形态学处理后的图像。五. 说明(1) 说明使用的二种图像处理方法的名称,并对这二种图像处理方法的效果进行比较说明:两种处理方法为:灰值形态学的腐蚀和灰值形态学的膨胀效果分析:l 灰值形态学腐蚀:就是把图像区域的内边界点变成背景,是区域缩小一圈。腐蚀可以消除目标图像所有边界点以及边界上的突出部分;分离两个目标之间的细小连通;腐蚀对于从一幅图像中去除一些小而无意义的目标是很有用的。算法中关键点是:g(j,k) = min f(j,k), f(j,k+1), f(j-1,k+1), f(j+1,k+1)l 灰值形态学膨胀 :就是将区域的外边界变成对象点,使区域扩大一圈。膨胀运算把图像周围的点合。

3、并进图像;连通两个距离比较小的图像;在连接图像中的断续点和填补图像中的空洞是非常有用的。算法关键点是:g(j,k) = max f(j,k), f(j,k+1), f(j-1,k+1), f(j+1,k+1) (2) 处理前后的截图处理效果一:处理效果二:(3) 程序功能实现的关键函数及关键源代码关键函数和关键源代码如下:OnDraw( ):将工作画布WorkCanvas中的图像传送到屏幕画布CDC中void CImageView:OnDraw(CDC* pDC) CImageDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)retu。

4、rn;int nWidth,nHeight;if(!WorkCanvas.IsNull() nWidth=WorkCanvas.GetWidth();nHeight=WorkCanvas.GetHeight();WorkCanvas.BitBlt(*pDC,0,0,nWidth,nHeight,0,0,SRCCOPY);/用WorkCanvus的Bitblt()函数将WorkCanvus中的图象数据传送到画布(例如CClientDC或pDC)上 CopyImage( ):CImage类对象之间的复制,工作画布复制到副本画布void CopyImage(CImage *pNewImage,CIm。

5、age *pOldImage)CDC *pDC,*pNewDC;intnWidth,nHeight,nBitsPerPixel;nWidth=pOldImage-GetWidth();nHeight=pOldImage-GetHeight();nBitsPerPixel=pOldImage-GetBPP();if(!pNewImage-IsNull()/ 目标位图非空pNewImage-Destroy();/ 删除目标位图pNewImage-Create(nWidth,nHeight,nBitsPerPixel,0);/建立CImage类对象新位图CopyColorTables(pNewIma。

6、ge,pOldImage);/复制调色板pDC=CDC:FromHandle(pOldImage-GetDC();/ 建立源位图CDCpNewDC=CDC:FromHandle(pNewImage-GetDC();/ 建立目标位图CDCpNewDC-BitBlt(0,0,nWidth,nHeight,pDC,0,0,SRCCOPY);/复制像素数据pOldImage-ReleaseDC();/ 释放CDC指针pNewImage-ReleaseDC();IndexToGreyImage( ):索引图像变灰阶图像void IndexToGreyImage(CImage *pNewImage,CIm。

7、age *pOldImage) RGBQUADColorTabs256;BYTEcOldPixel,cNewPixel;inti,y,x,nOldWidth,nOldHeight,nColorTableEntries;intRGBToGrey256;if(pOldImage-GetBPP()=8) nOldWidth=pOldImage-GetWidth();nOldHeight=pOldImage-GetHeight();/建立新图像if (!pNewImage-IsNull() pNewImage-Destroy(); /如果图像pNewImage非空,则清除原有图像(原位图)pNewIm。

8、age-Create(nOldWidth,nOldHeight,8,0);/建立新图像/设置新图像的灰阶调色板for(i=0;iSetColorTable(0,256,ColorTabs);/设置新图像调色板/计算原图像调色板的RGB色彩数据与灰色数据关系nColorTableEntries=pOldImage-GetMaxColorTableEntries();pOldImage-GetColorTable(0,nColorTableEntries,ColorTabs);/取原索引图像调色板for(i=0;iGetWidth(); nHeight=pOldImage-GetHeight();。

9、 for(y=1;yGetWidth();nHeight=pOldImage-GetHeight();for(y=1;ycMax) cMax=cPixelValue;/寻找邻域极大(白)值SetPixelValueInIndexImage(pNewImage,x,y,cMax);/灰值形态学膨胀处理为邻域极大(白)值void CImageView:OnGreyDilation()CClientDC dc(this);CImageImage;int nStartX,nStartY,nCanvasDrawWidth;if(!WorkCanvas.IsNull()/如果工作画布WorkCanvas非。

10、空 /显示原始工作画布WorkCanvas图像nStartX=0;nStartY=0;nCanvasDrawWidth=DrawCanvas(&WorkCanvas,&dc,nStartX,nStartY);/将工作画布WorkCanvas图像转化成灰值图像并放在Image中IndexToGreyImage(&Image,&WorkCanvas);/对Image图像进行灰值形态学膨胀处理,处理结果放在SaveCanvas中GreyDilation(&SaveCanvas,&Image);/显示SaveCanvas中处理后的图像nStartX+=2*(nCanvasDrawWidth+10);DrawCanvas(&SaveCanvas,&dc,nStartX,nStartY。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值