每当我在 openCV 中使用 cvMatchTemplate 时,都会出现分段错误。为什么?
我正在尝试在 openCV 中进行简单的模板匹配,并且在我的代码中调用 cvMatchTemplate 的行处,出现分段错误。我不知道这是否相关,但我在使用 x11 的 mac 上并且使用 opencv 2.0.0。
这是相关代码:
IplImage* imgOriginal = cvLoadImage("reference.png", 0); IplImage* imgTemplate = cvLoadImage("template.png", 0);
IplImage* imgResult = cvCreateImage(cvSize(imgOriginal->宽度-imgTemplate->宽度+1, imgOriginal->高度-imgTemplate->高度+1), IPL_DEPTH_32F, 1); cvZero(imgResult);
cvMatchTemplate(imgOriginal, imgTemplate, imgResult, CV_TM_CCOEFF_NORMED); ...
我从网上找到的一个非常好的教程中复制了这段代码,看起来事情应该可以解决,但我似乎无法理解。另外,cvMatchTemplate 中的最后一个参数可能会根据我们想要计算匹配的方式而有所不同,我已经尝试了所有这些,它们称为创建分段错误。
有人对如何解决这个问题有任何想法吗?预先非常感谢。
I'm trying to do a simple template match in openCV and at the line in my code where I call cvMatchTemplate, I get a segmentation fault. I don't know if this is relevant, but i'm on a mac using x11 and i'm using opencv 2.0.0.
Here is relevant code:
IplImage* imgOriginal = cvLoadImage("reference.png", 0);
IplImage* imgTemplate = cvLoadImage("template.png", 0);
IplImage* imgResult = cvCreateImage(cvSize(imgOriginal->width-imgTemplate->width+1, imgOriginal->height-imgTemplate->height+1), IPL_DEPTH_32F, 1);
cvZero(imgResult);
cvMatchTemplate(imgOriginal, imgTemplate, imgResult, CV_TM_CCOEFF_NORMED);
...
I copied this code from a really good tutorial I found online and it seemed like things should work out, but I can't seem to get it. Also, the last parameter in cvMatchTemplate can vary based on how we want to compute the matching and I've tried them all and they call create a segementation fault.
Does anyone have any ideas on how to fix this? Thanks a lot in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没有看到真正的回溯(尝试使用 gdb),很难说。检查
imgOriginal
和imgTemplate
是否不为空?Without seeing a real backtrace (try running with gdb), it's hard to tell. Check that
imgOriginal
andimgTemplate
aren't null?