使用cv2.imwrite保存BGR图像

时间:2019-11-10 09:43:09

标签: python numpy opencv

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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

根据您的情况,它将是:

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

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