⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 用于目标匹配的Delphi控件
💻 CPP
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream.h>

#include "cv.h"
#include "highgui.h"

int main() 
{
    char name[256];

	FILE* fp = fopen("match_result.txt","w");
    
	IplImage* image;
	IplImage* match;
	IplImage* templ = cvLoadImage("1.jpg",0);
	int TEMPL_WIDTH = templ->width;
	int TEMPL_HEIGHT = templ->height;
	
    int i;
    for(i=1;i<100;i++)
	{
		sprintf(name,"data\\%04d.jpg",i);
        
		image = cvLoadImage(name,0);
        int IMAGE_WIDTH = image->width;
		int IMAGE_HEIGHT = image->height;
			
		int RESULT_WIDTH = IMAGE_WIDTH - TEMPL_WIDTH + 1; // result's dimensions must be computed this way
		int RESULT_HEIGHT = IMAGE_HEIGHT - TEMPL_HEIGHT + 1;
		match = cvCreateImage(cvSize(RESULT_WIDTH,RESULT_HEIGHT), IPL_DEPTH_32F, 1);	
		
		// perform NCC and find max point of result
		cvMatchTemplate( image, templ, match, CV_TM_CCOEFF_NORMED );
		double minVal, maxVal;
		CvPoint minLoc, maxLoc;
		cvMinMaxLoc(match, &minVal, &maxVal, &minLoc, &maxLoc, NULL);

		fprintf(fp,"%d  %d\n",maxLoc.x,maxLoc.y);
		cvCircle(match,maxLoc,1,CV_RGB(0,255,0), 3, 8, 0 );
		
        cvNamedWindow("result",1);
		cvShowImage("result",match);
		cvWaitKey(1);
	}
	
	cvReleaseImage(&image);
	cvReleaseImage(&templ);
	cvReleaseImage(&match);
	cvDestroyWindow("result");
	
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -