我知道你可以使用imread将图像变成numpy数组。
cv2.imread(path,0)
加载灰度图像......
cv2.imread(path,1)
加载一种颜色。
我可以在灰度图像上调用第二个,它返回一个形状(y,x,3),因此它仍然是彩色图像的格式,即使它没有。
opencv中是否有一个函数可以检测文件所处的颜色格式,因此我可以调用正确的imread函数。
答案 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)