如何知道图像是RGB还是BGR格式?

时间:2015-06-12 11:56:27

标签: java opencv image-processing rgb bgr

有没有办法事先知道用作系统输入的图像是RGB还是BGR格式?

我正在使用带有java API的opencv,我想将输入图像转换为灰度或L * a * b *颜色空间,但在OpenCV中,您必须首先指定要转换的图像是RGB还是BGR。

更新

我使用的图片类型为.jpg.png

3 个答案:

答案 0 :(得分:5)

如果您正在阅读图像文件,或者您可以访问读入该文件的代码,请知道它是:

    如果您使用cv2.imread() ,请
  • BGR订购 如果您使用mpimg.imread()(假设import matplotlib.image as mpimg
  • ,请
  • RGB订购

如果您不知道文件的打开方式,accepted answer BufferedImage非常适合Java。
我想找到一种方法在Python中做同样的事情!

答案 1 :(得分:2)

如果您的图片是BufferedImage,那么您可以使用getType()询问他的类型,并针对几个常量进行测试(请参阅:BufferedImage)。

答案 2 :(得分:2)

当您使用opencv(imread,VideoCapture)时,图像将加载到BGR色彩空间中。