- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《计算机图像处理》课程设计报告
《计算机图像处理》
课程设计报告
华东理工大学信息学院计算机系
2013年5月15日
课程设计题目
灰值图像形态学
日期
2013.4.3-2013.5.8
环境(操作系统,开发语言)
操作系统是Windows
开发语言是Visual C++ 语言
设计内容(设计要求)
(1) 开发一个基于Visual C++.NET 2003(或更高版本)MFC的图像的形态学处理的程序,必须用CImage类作为图像处理的对象。
(2) 程序必须具备的功能:
a) 可选择文件名,读入并显示一张原始图像文件。
b) 在显示的原始图像旁边显示至少二张不同的形态学处理后的图像。
说明
说明使用的二种图像处理方法的名称,并对这二种图像处理方法的效果进行比较
说明:
两种处理方法为:灰值形态学的腐蚀和灰值形态学的膨胀
效果分析:
灰值形态学腐蚀:就是把图像区域的内边界点变成背景,是区域缩小一圈。腐蚀可以消除目标图像所有边界点以及边界上的突出部分;分离两个目标之间的细小连通;腐蚀对于从一幅图像中去除一些小而无意义的目标是很有用的。算法中关键点是:
g(j,k) = min {f(j,k), f(j,k+1), f(j-1,k+1),…, f(j+1,k+1)}
灰值形态学膨胀 :就是将区域的外边界变成对象点,使区域扩大一圈。膨胀运算把图像周围的点合并进图像;连通两个距离比较小的图像;在连接图像中的断续点和填补图像中的空洞是非常有用的。算法关键点是:
g(j,k) = max {f(j,k), f(j,k+1), f(j-1,k+1),…, f(j+1,k+1)}
处理前后的截图
处理效果一:
处理效果二:
程序功能实现的关键函数及关键源代码
关键函数和关键源代码如下:
OnDraw( ):将工作画布WorkCanvas中的图像传送到屏幕画布CDC中
void CImageView::OnDraw(CDC* pDC) {
CImageDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
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,CImage *pOldImage)
{ CDC *pDC,*pNewDC;
int nWidth,nHeight,nBitsPerPixel;
nWidth=pOldImage-GetWidth();
nHeight=pOldImage-GetHeight();
nBitsPerPixel=pOldImage-GetBPP();
if(!pNewImage-IsNull())// 目标位图非空
pNewImage-Destroy();// 删除目标位图
pNewImage-Create(nWidth,nHeight,nBitsPerPixel,0);//建立CImage类对象新位图
CopyColorTables(pNewImage,pOldImage);//复制调色板
pDC=CDC::FromHandle(pOldImage-GetDC());// 建立源位图CDC
pNewDC=CDC::FromHandle(pNewImage-GetDC());// 建立目标位图CDC
pNewDC-BitBlt(0,0,nWidth,nHeight,pDC,0,0,SRCCOPY);//复制像素数据
pOldImage-ReleaseDC();// 释放CDC指针
pNewImage-ReleaseDC();
}
IndexToGreyImage( ):索引图像变灰阶图像
void IndexToGreyImage(CImage *pNewImage,CImage *pOldImage) {
RGBQUAD ColorTabs[256];
BYTE cOldPixel,cNewPixel;
int i,y,x,nOldWidth,nOldHeight,nColo
文档评论(0)