关于python:使用cv2.imwrite保存BGR图像

Save BGR image with cv2.imwrite

我有一个2D numpy数组,其值在[-4,3]之间浮动。
cv2.imshow将该数组显示为BGR图像,但是当我使用cv2.imwrite保存它时,它是完全黑色的。 然后,我发现必须将数组乘以255才能保存,但要使用imwrite进行保存,但是在这种情况下,图像以RGB格式保存,但是我想保存cv2.imshow显示的BGR图像。
我该怎么办?


首先,您必须调整所有数组的值。 像素在-4到3之间,因此您必须执行以下操作:

1
2
img = img - min_val
img = img*255.0/(max_val - min_val)

在您的情况下,它将是:

1
2
img = img+4
img = img*255/7.0

然后将您的img转换为8位未inging的int并使用imwrite保存(无需与BGR或RGB混淆,opencv自行处理)


因此,基本上,您要将图像从RGB转换为BGR图像。

这可以通过使用cv2.cvtColor()函数来完成。

1
2
result_BGR = cv2.cvtColor(RGB_image, cv2.COLOR_RGB2BGR)
cv2.imwrite('PATH', result_BGR)