2017-04-02 119 views
0

首先,我不知道用戶輸入圖像的類型是什麼。 但我想將它們全部轉換爲類型CV_8UC3。OpenCV(android)將未知類型的圖像轉換爲CV_8UC3

我用這個函數:

Imgproc.cvtColor(img,img,CvType.CV_8UC3); 

但它不工作。

我試試這個:

Imgproc.cvtColor(img_edge,img_edge,Imgproc.COLOR_GRAY2RGB); 

這是從灰色到RGB,但實際上我不知道什麼是輸入圖像的類型,我只希望他們都轉換成CV_8UC3。

這可能嗎?

回答

0

您只需編寫一個if-else子句,不存在太多情況,除RGB以外,只有兩種格式存在,一種是灰色,另一種是RGBA。所以你可能會喜歡:

if (img.channels() == 1) { 
    Imgproc.cvtColor(img_edge,img_edge,Imgproc.COLOR_GRAY2BGR); 
} else if (img.channels() == 4) { 
    Imgproc.cvtColor(img_edge,img_edge,Imgproc.COLOR_BGRA2BGR); 
} 
+0

嗨ZdaR,你的代碼是否涵蓋所有的情況已經? –

+0

是的,圖像通常只有這三種口味:灰色,RGB和RGBA – ZdaR