OpenCV cv2.matchTemplate崩溃:python.exe中0x74B5E4E4处的未处理异常:0xC0000005

时间:2016-01-31 02:44:04

标签: python-2.7 opencv template-matching

当我尝试使用opencv包的模板匹配方法TM_CCOEFF时,我的python崩溃了。但是我的终端上没有显示错误消息。我可以毫无问题地使用标准方法TM_CCOEFF_NOMRED。我真的需要TM_CCOEFF

的实施

环境是来自anaconda的Python2.7。 OpenCV 2.4.11

代码是:

cv2.matchTemplate(img1, img2, eval('cv2.TM_CCOEFF'))

我从Visual Studio debuger得到的错误:

  

python.exe中0x74B5E4E4处的未处理异常:0xC0000005:访问冲突写入位置0x00090FE8。

错误报告文件:

-

-

6.1

7601 Service Pack 1

(0x4):Windows 7企业版

企业

7601.23313.amd64fre.win7sp1_ldr.151230-0600

1130

多处理器免费

X64

1033

-

APPCRASH

python.exe

0.0.0.0

4f84a6c8

opencv_core249.dll

0.0.0.0

5408cb57

0000005

00005253

-

6.1.7601.2.1.0.256.4

1033

f8df

f8dfaee172ac09535f188b654ca18c90

6715

67151222e0799356f987ab35b4fd5e05

-

9829DFB7-2EA2-4836-A3C1-35C18A006A4F

戴尔公司

OptiPlex 7010

A16

我没有从此次崩溃中获得的其他信息。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您应始终检查资源: C ++代码:

Mat img; imread("im1.jpg",1);
if ( img.empty() )
{
     cerr << "whaa!" << endl;
     return 0;
}

答案 1 :(得分:-2)

    result.create(result_rows, result_cols, CV_32FC1);

    cvtColor(img, img, CV_BGR2GRAY);      // <-- add this
    cvtColor(templ, templ, CV_BGR2GRAY);  // <-- add this

    matchTemplate(img, templ, result, match_method);

这是C ++代码,但它对我有用。