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