2017-04-02 35 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

相关问题