cv2 保存图片RGB BGR问题
cv2 读取进来再保存
path = ${image_path}
image = cv2.imread(path, cv2.IMREAD_COLOR)
cv2.imwrite('cv2.png', image)
原图:
cv2.imrite之后的图:
可以看到前后图片一样,我们都知道cv2
.imread读取进来的图像是BGR格式,而cv2.imrite保存的时候也需要BGR格式,这样保证颜色通道顺序一致。
转换RGB后在用cv2保存
通常情况下,我们都需要转换成RGB的格式进行后续处理,看下面的例子
path = ${image_path}
image = cv2.imread(path, cv2.IMREAD_COLOR)
cv2.cvtColor(image, cv2.COLOR_BGR2RGB, image)
cv2.imwrite('cv2.jpg', image)
而保存的图像却是:
可以看到颜色前后发生了变化,这就说明cv2.imwrite会进行一次通道转化。如果我们将输入图像转化成了RGB,进行了一系列处理后,希望保存图像,而此时需要将RGB转化成BGR,最终保存的图像才是我们想要的。
推荐的使用
path = ${image_path}
image = cv2.imread(path, cv2.IMREAD_COLOR)
cv2.cvtColor(image, cv2.COLOR_BGR2RGB, image)
# your image processing code
cv2.cvtColor(image, cv2.COLOR_RGB2BGR, image)
cv2.imwrite('cv2.jpg', image)
此时保存的图像: