如何转换使用 cv2.imread('img.png',cv2 读取的图像。IMREAD_UNCHANGED) 格式为 cv2.imread('img.png',cv2。IMREAD_COLO



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

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

最新更新