我正在尝试读取未更改格式的图像,执行一些操作并将其转换回彩色格式
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)
但是,我想避免创建临时映像的步骤。我将如何通过更好的方法实现相同的目标
OpenCV具有颜色转换功能cvtColor
https://docs.opencv.org/3.1.0/de/d25/imgproc_color_conversions.html
im2 = cv2.cvtColor(im, <conversion code>)
您应该根据您拥有的图像格式自己找出转换代码。可能,这将是cv2.COLOR_BGRA2BGR