我正在尝试读取未更改格式的图像,进行一些操作,然后将其转换回彩色格式
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)
但是,我想避免创建临时图像的步骤。我将如何通过更好的方法实现相同目标
答案 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