2012-07-16 123 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.在崩潰消息中,您應該看到崩潰的原因