OpenCV在加载之前检测图像文件是否为彩色

时间:2013-12-09 14:26:19

标签: python opencv numpy

我知道你可以使用imread将图像变成numpy数组。

cv2.imread(path,0) 

加载灰度图像......

cv2.imread(path,1)

加载一种颜色。

我可以在灰度图像上调用第二个,它返回一个形状(y,x,3),因此它仍然是彩色图像的格式,即使它没有。

opencv中是否有一个函数可以检测文件所处的颜色格式,因此我可以调用正确的imread函数。

2 个答案:

答案 0 :(得分:1)

我假设您使用的是Python,因为您提到了numpy。

在加载图像之前,您无法检查图像的类型。

保证您拥有灰度图像的最简单的解决方案是使用类似的东西(如果您想要始终使用灰度):

        if len(im.shape) > 2:
            im = cv2.cvtColor(im, cv2.cv.CV_RGB2GRAY)

答案 1 :(得分:1)

http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#imread

查看可用标记列表“-1”(< 0),在第二个输入参数中应该执行您要求的操作。 尝试使用cv2.imread(path,-1)