Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python OpenCV在加载前检测图像文件是否为彩色_Python_Opencv_Numpy - Fatal编程技术网

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

Python OpenCV在加载前检测图像文件是否为彩色,python,opencv,numpy,Python,Opencv,Numpy,我知道你可以使用imread将图像放入numpy数组 cv2.imread(path,0) 加载灰度图像并 cv2.imread(path,1) 装一个彩色的 我可以在灰度图像上调用第二个,它返回一个形状(y,x,3),因此它仍然是彩色图像的格式,即使它没有 opencv中是否有一个函数可以检测文件的颜色格式,这样我就可以调用正确的imread函数。我假设您使用的是Python,因为您提到了numpy 在加载图像之前,无法检查图像的类型 要保证您拥有灰度图像,最简单的解决方案是使用如下内容

我知道你可以使用imread将图像放入numpy数组

cv2.imread(path,0) 
加载灰度图像并

cv2.imread(path,1)
装一个彩色的

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


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

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

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

要保证您拥有灰度图像,最简单的解决方案是使用如下内容(如果您希望始终拥有灰度图像):


查看可用标志列表“-1”(我希望有两条基于图像是否为彩色的逻辑路线。使用M4rtini的答案,我可以得到bw或彩色图像,然后我可以使用形状属性来计算它是否有彩色。似乎我误解了您的问题。但是,答案可能会帮助其他人,因此我认为最好将其留在这里。合并g您的答案给出了解决方案。:)
        if len(im.shape) > 2:
            im = cv2.cvtColor(im, cv2.cv.CV_RGB2GRAY)