2012-07-16 121 views
0

你好我不知道如果我做错了什么或没有,但我做到以下几点:opencv的cvThreshold错误

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

它不牛逼崩溃了

回答

1

它不是崩溃。它抛出一个异常,因为你没有捕捉到它,你的程序正在中止。 OpenCV阈值不支持16U。

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

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