模板匹配

#ifdef _CH_
#pragma package<opencv>
#endif

#pragma comment(lib,"cv.lib")
#pragma comment(lib,"cvcam.lib")
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"highgui.lib")

#include <cv.h>
#include <cvcam.h>
#include <cxcore.h>
#include <highgui.h>

void main()
{
 IplImage *src_image; //载入的源图像 
 IplImage *temp1;  //模板图像 
 IplImage *ftmp[6];  //存放结果图像

 //载入源图像
 src_image = cvLoadImage("1.jpg");
 assert(src_image!=NULL);

 //载入模板图像
 temp1 = cvLoadImage("2.jpg");
 assert(temp1!=NULL);

 //目标图像的宽度和高度
 int iwidth = src_image->width - temp1->width + 1;
 int iheight =src_image->height -temp1->height + 1;

 for (int i = 0;i < 6;i++)
 {
  ftmp[i]=cvCreateImage(cvSize(iwidth,iheight),
         32,
         1
       );
 }

 //执行模板匹配
 for (int j = 0; j < 6;j++)
 {
  cvMatchTemplate(src_image,temp1,ftmp[j],j);
  cvNormalize(ftmp[j],ftmp[j],1,0, CV_MINMAX);
 }
 
 //创建窗口
 cvNamedWindow("Show_Src");
 cvNamedWindow("Show_Template");
 cvNamedWindow("Show_SQDIFF");
 cvNamedWindow("Show_NORMED");
 cvNamedWindow("Show_CCORR");
 cvNamedWindow("Show_CCORR_NORMED");
 cvNamedWindow("Show_CCOEFF");
 cvNamedWindow("Show_CCOEFF_NORMED");

 //显示结果
 cvShowImage("Show_Src",src_image);
 cvShowImage("Show_Template",temp1);
 cvShowImage("Show_SQDIFF",ftmp[0]);
 cvShowImage("Show_NORMED",ftmp[1]);
 cvShowImage("Show_CCORR",ftmp[2]);
 cvShowImage("Show_CCORR_NORMED",ftmp[3]);
 cvShowImage("Show_CCOEFF",ftmp[4]);
 cvShowImage("Show_CCOEFF_NORMED",ftmp[5]);

 cvWaitKey();

 //释放资源
 cvReleaseImage(&src_image);
 cvReleaseImage(&temp1);
 cvReleaseImage(&ftmp[0]);
 cvReleaseImage(&ftmp[1]);
 cvReleaseImage(&ftmp[2]);
 cvReleaseImage(&ftmp[3]);
 cvReleaseImage(&ftmp[4]);
 cvReleaseImage(&ftmp[5]);
 cvDestroyAllWindows();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值