2013-03-15 42 views
2

我在Cent OS機器上使用OpenCV 2.4.4。我的代碼目前加載與警告的圖像:部分數據類型不匹配openCV警告組件數據類型不匹配

這裏是代碼:

#include <cv.h> 
#include <highgui.h> 
#include "imglib.h" 

int main(int argc, char** argv) 
{ 
    Mat image = imread(argv[1], CV_LOAD_IMAGE_ANYDEPTH); 
    imwrite("debugwriteout.jp2", image); 
} 

我通過在ARGS一個.jp2灰度文件的名稱。圖像具有14位像素深度,但是當我將像素值打印出來時,我可以得到超過20000的值,而且我的圖像現在是一個完全黑色的正方形。任何意見,將不勝感激。

附加信息: 當我改變imread標誌CV_LOAD_IMAGE_GRAYSCALE它的圖像成功轉換爲8位像素深度和印刷品有用的輸出,所以我可以告訴碧玉模塊工作至少在某種程度上正確。

任何意見,將不勝感激,

感謝

回答

1

SZman,

我解決我的問題,請參考圖片。 解決方案是高位的位置。 在16位上,對於14位深度,您有xxxxxxxxxxxxxx00而不是00xxxxxxxxxxxxxx。 如果您想要正確的值,則必須在右側貼上2位。

0

使用這些標誌

Mat image = imread(argv[1], CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); 
+0

我加了標誌,沒有改變。 – SZman 2013-03-15 19:29:57

+0

以16位格式化輸入圖像,然後重試。 – William 2013-04-29 07:15:15