【发布时间】:2017-07-13 09:05:32
【问题描述】:
我有以下代码:
imgs = glob.glob('/home/chipin/heart/tray.png')
current_img = io.imread(imgs[0])
cv2.imwrite('/home/chipin/heart/01.png', current_img[0:511,0:511])
图片大小为512*512,保存后蓝色图片变为黄色。似乎放弃了一个频道。我真的不知道为什么。
这是current_img的值:
【问题讨论】:
-
我认为
io.imread是来自 skimage 的那个? -
如果是这样,那么问题在于
skimage.io.imread将图像加载为 RGB,但 numpy 假定图像为BGR。这意味着蓝色和红色平面被翻转。为什么不直接使用cv2.imread来加载图片呢? -
谢谢,我想是这样。请问我该如何纠正?
-
要么使用
cv2.imread,它也会以BGR格式读取(这是OpenCV的默认设置),或者使用cv2.cvtColor从RGB转换为BGR。 -
哦,最后一个全是零的通道——看起来像透明的。在这种情况下,它是 RGBA BGRA。