Opencv cvThreshold错误

时间:2012-07-16 14:12:53

标签: c++ opencv

您好我不知道我做错了什么,但是当我做以下事情时:

IplImage *testimage;
testimage = cvCreateImage(cvSize(10,10),IPL_DEPTH_8U,1);
cvThreshold(testimage,testimage,127,127,CV_THRESH_TRUNC);

当我尝试使用无符号短值时,一切正常:

IplImage *testimage;
testimage = cvCreateImage(cvSize(10,10),IPL_DEPTH_16U,1);
cvThreshold(testimage,testimage,127,127,CV_THRESH_TRUNC);

我的程序崩溃...我使用opencv 2.4.2我认为这可能是opencv中的一个错误。 不知怎的,如果我尝试以下内容:

IplImage *testimage;
testimage = cvCreateImage(cvSize(10,10),IPL_DEPTH_16S,1);
cvThreshold(testimage,testimage,127,127,CV_THRESH_TRUNC);

它不再崩溃

2 个答案:

答案 0 :(得分:2)

它没有崩溃。这是一个例外,因为你没有抓住它,你的程序正在中止。 OpenCV Thresholding不支持16U。

The supported ones are: 8U, 16S and 32F

答案 1 :(得分:1)

请参阅功能threshold的OpenCV文档。第一个参数是8或32位图像
附:在崩溃消息中,您应该看到崩溃的原因