Opencv c++模板/模式匹配比例和旋转不变量 我想看看在OpenCV和C++中的图像中是否存在模板。但是,由于拍摄图像的距离不同以及图像的位置不同,匹配不会正确进行
这是我的密码:Opencv c++模板/模式匹配比例和旋转不变量 我想看看在OpenCV和C++中的图像中是否存在模板。但是,由于拍摄图像的距离不同以及图像的位置不同,匹配不会正确进行,c++,opencv,scaling,template-matching,C++,Opencv,Scaling,Template Matching,这是我的密码: IplImage* image = cvLoadImage("C:/images/Photo0734.jpg", 1); IplImage* templat = cvLoadImage("C:/images/templatecoin.jpg", 1); int percent =25;// declare a destination IplImage object with correct size, depth and channels IplImage* imag
IplImage* image = cvLoadImage("C:/images/Photo0734.jpg", 1);
IplImage* templat = cvLoadImage("C:/images/templatecoin.jpg", 1);
int percent =25;// declare a destination IplImage object with correct size,
depth and channels
IplImage* image3 = cvCreateImage( cvSize((int)((image->width*percent)/100) ,
(int)((image->height*percent)/100) ),image->depth, image->nChannels );
//use cvResize to resize source to a destination image
cvResize(image, image3);
IplImage* image2 = cvCreateImage(cvSize(image3->width, image3->height),
IPL_DEPTH_8U, 1);
IplImage* templat2 = cvCreateImage(cvSize(templat->width,
templat->height), IPL_DEPTH_8U, 1);
cvCvtColor(image3, image2, CV_BGR2GRAY);
cvCvtColor(templat, templat2, CV_BGR2GRAY);
int w = image3->width - templat->width + 1;
int h = image3->height - templat->height + 1;
result = cvCreateImage(cvSize(w, h), IPL_DEPTH_32F, 1);
cvMatchTemplate(image2, templat2, result, CV_TM_CCORR_NORMED);
double min_val, max_val;
CvPoint min_loc, max_loc;
cvMinMaxLoc(result, &min_val, &max_val, &min_loc, &max_loc);
cvRectangle(image3, max_loc, cvPoint(max_loc.x+templat->width,
max_loc.y+templat->height), cvScalar(0,1,1), 1);
cvShowImage("src", image3);
//cvShowImage("result image", result);
cvWaitKey(0);
请注意,我不能使用垫子。是否可以使用IplImage*并使代码对缩放和旋转保持不变?帮帮我。让我们看看:
我认为这对你很有用。对于你的问题来说,也许模式比模板更合适…@Alexandre Bizeau-嗨,你的例子是使用cv::Mat,我无法使用它。这就是为什么我问是否可以用IplImage实现不变旋转和缩放。你不能使用,因为你在做C?还是我错过了什么?让我来看看IplImage,如果有办法的话,你的代码有什么问题。请看一下:-我无法用cv::Mat加载图像,但是我用IplImage来加载图像,而不是你说的cv::Mat。你能用cvMat吗?Mat的C格式?好的,但是一旦你用cvLoadImage加载了一个图像,你能在cvMat中转换它吗,通常你应该这样做。如果不能使用Mat,那么OpenCV配置肯定会有问题。不要回避你的第一个问题。以前尝试解决这个问题,因为IplImage现在不支持OpenCV。