图像模板匹配_第1页
图像模板匹配_第2页
图像模板匹配_第3页
图像模板匹配_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、BOOL CDlgRecMatch:TemplateMatch(CDib* pDibSrc, CDib* pDibTemplate)/ 指向源图像的指针LPBYTElpSrc,lpTemplateSrc;/ 指向缓存图像的指针LPBYTElpDst;/循环变量long i;long j;long m;long n;/中间结果double dSigmaST;double dSigmaS;double dSigmaT;/相似性测度double R;/最大相似性测度double dbMaxR;/最大相似性出现位置int nMaxWidth;int nMaxHeight;/像素值unsigned ch

2、ar unchPixel;unsigned char unchTemplatePixel;/ 获得图象数据存储的高度和宽度CSize sizeSaveImage;sizeSaveImage = pDibSrc->GetDibSaveDim();/ 获得模板图象数据存储的高度和宽度CSize sizeSaveTemplate;sizeSaveTemplate = pDibTemplate->GetDibSaveDim();/ 暂时分配内存,以保存新图像CDib* pDibNew;pDibNew = new CDib;/ 如果分配内存失败,则推出if(!CopyDIB(pDibSrc,

3、pDibNew)/ 释放已分配内存pDibNew->Empty();/ 返回return FALSE;/ 初始化新分配的内存lpDst = (LPBYTE)pDibNew->m_lpImage; / 图象的高度int nImageHeight ;nImageHeight = pDibSrc->m_lpBMIH->biHeight;/ 图象的宽度int nImageWidth;nImageWidth = pDibSrc->m_lpBMIH->biWidth;/ 模板图象的高度int nTemplateHeight;nTemplateHeight = pDibT

4、emplate->m_lpBMIH->biHeight;/ 模板图象的宽度int nTemplateWidth;nTemplateWidth = pDibTemplate->m_lpBMIH->biWidth;/计算dSigmaTdSigmaT = 0;for (n = 0;n < nTemplateHeight ;n+)for(m = 0;m < nTemplateWidth ;m+)/ 指向模板图像倒数第j行,第i个象素的指针lpTemplateSrc = (LPBYTE)pDibTemplate->m_lpImage + sizeSaveTemp

5、late.cx * n + m;unchTemplatePixel = (unsigned char)*lpTemplateSrc;dSigmaT += (double)unchTemplatePixel*unchTemplatePixel;/找到图像中最大相似性的出现位置 dbMaxR = 0.0;for (j = 0;j < nImageHeight - nTemplateHeight +1 ;j+)for(i = 0;i < nImageWidth - nTemplateWidth + 1;i+)dSigmaST = 0;dSigmaS = 0;for (n = 0;n &l

6、t; nTemplateHeight ;n+)for(m = 0;m < nTemplateWidth ;m+)/ 指向源图像倒数第j+n行,第i+m个象素的指针lpSrc = (LPBYTE)pDibSrc->m_lpImage + sizeSaveImage.cx * (j+n) + (i+m);/ 指向模板图像倒数第n行,第m个象素的指针lpTemplateSrc = (LPBYTE)pDibTemplate->m_lpImage + sizeSaveTemplate.cx * n + m;unchPixel = (unsigned char)*lpSrc;unchTemplatePixel = (unsigned char)*lpTemplateSrc;dSigmaS += (double)unchPixel*unchPixel;dSigmaST += (double)unchPixel*unchTemplatePixel;/计算相似性R = dSigmaST / ( sqrt(dSigmaS)*sqrt(dSigmaT);/与最大相似性比较if (R > dbMaxR) dbMaxR = R;nMaxWidth = i;nMaxHeight = j;/输出最大相似性/ 对目标图象的象素进行赋值for(i=0; i<nImageHeigh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论