Opencv cvThreshold bug

Opencv cvThreshold bug

本文关键字:bug cvThreshold Opencv      更新时间:2023-10-16

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

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);

它不再崩溃

它没有崩溃。它正在抛出一个异常,由于您没有捕捉到它,您的程序正在中止。OpenCV Thresholding不支持16U。

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

有关函数阈值,请参阅OpenCV文档。第一个参数是8或32位图像
P.S.在崩溃消息中,您应该看到崩溃的原因