如何将使用cv2.imread('img.png',cv2.IMREAD_UNCHANGED)读取的图像转换为cv2.imread('img.png',cv2.IMREAD_COLOR)

时间:2018-07-04 13:55:04

标签: python-3.x numpy opencv image-processing

我正在尝试读取未更改格式的图像,进行一些操作,然后将其转换回彩色格式

im = cv2.imread(fname,cv2.IMREAD_UNCHANGED) # shape(240,240,4)
....
im2 = cv2.imread(im,cv2.IMREAD_COLOR) # required shape(240,240,3)

但是,看起来我无法将第一个numpy数组的结果输入到第二个读取中。 因此,目前,我已经在操作后创建了一个临时映像,并读取该值以获得所需的im2值。

im = cv2.imread(fname,cv2.IMREAD_UNCHANGED) # shape(240,240,4)
....
cv2.imwrite('img.png',im)
im2 = cv2.imread('img.png',cv2.IMREAD_COLOR) # required shape(240,240,3)

但是,我想避免创建临时图像的步骤。我将如何通过更好的方法实现相同目标

1 个答案:

答案 0 :(得分:1)

OpenCV具有用于颜色转换的功能cvtColor

https://docs.opencv.org/3.1.0/de/d25/imgproc_color_conversions.html

im2 = cv2.cvtColor(im, <conversion code>)

您应该根据所拥有的图像格式自己确定转换代码。可能是cv2.COLOR_BGRA2BGR