opencv - cvMatchTemplate()函数给出断言失败错误? OpenCV的

我正在尝试使用cvMatchTemplate()进行一些图像跟踪,但是我不断收到断言失败错误-215。我希望有人能弄清楚。我确保所有ivars都不为零,并且结果和模板的大小正确。我在opencv 2.2上

    int ww = image->width - template->width + 1;
    int hh = image->height - template->height + 1;
    CvSize tempsize = cvSize(ww, hh);
    IplImage *results = cvCreateImage(tempsize,image->depth, image->nChannels);

    //set the roi
    cvSetImageROI(image, roiFace);
    cvMatchTemplate(image, template, results, CV_TM_SQDIFF_NORMED);

这是错误:
`OpenCV Error: Assertion failed (
result.size() == cv::Size(std::abs(img.cols - templ.cols) + 1, std::abs(img.rows - templ.rows) + 1) 

&& 
result.type() == CV_32F) in 

cvMatchTemplate, file /Volumes/ramdisk/opencv/OpenCV-2.2.0/modules/imgproc/src/templmatch.cpp, line 381
terminate called after throwing an instance of 'cv::Exception'


  what():  /Volumes/ramdisk/opencv/OpenCV-2.2.0/modules/imgproc/src/templmatch.cpp:381: error: (-215) result.size() == cv::Size(std::abs(img.cols - templ.cols) + 1, std::abs(img.rows - templ.rows) + 1) && result.type() == CV_32F in function cvMatchTemplate`

最佳答案

宽度和高度似乎很好。也许深度是错误的。将您的cvCreateImage行更改为:

IplImage *results = cvCreateImage(tempsize,IPL_DEPTH_32F, 1);

https://stackoverflow.com/questions/6083625/

相关文章:

docker - 在 Windows 2019 服务器上运行 linux 容器时出错

opencv - 什么最适合您的视频跟踪?为什么?

docker - 为什么 Neo4J docker 身份验证不起作用

opencv - opencv中是否有用于处理Blob的好的库?

image - 从输入图像获取RGB像素并在opencv中重建输出图像

opencv - createVideoWriter()openCV中fps的最佳值

c# - 无法访问 C# emgucv 中的 Image.Data 属性

visual-studio-2010 - cvCreateButton VS2010

opencv - 在opencv中读写图像

opencv - 检测视频帧中的现实世界对象