您好我不知道我做错了什么,但是当我做以下事情时:
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);
它不再崩溃
答案 0 :(得分:2)
它没有崩溃。这是一个例外,因为你没有抓住它,你的程序正在中止。 OpenCV Thresholding不支持16U。
The supported ones are: 8U, 16S and 32F
答案 1 :(得分:1)
请参阅功能threshold的OpenCV文档。第一个参数是8或32位图像
附:在崩溃消息中,您应该看到崩溃的原因