Python OpenCV在加载前检测图像文件是否为彩色
我知道你可以使用imread将图像放入numpy数组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 在加载图像之前,无法检查图像的类型 要保证您拥有灰度图像,最简单的解决方案是使用如下内容
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)