plt.imshow适用于逆FFT图像,但cv2.imwrite无效。知道为什么吗?

时间:2018-08-19 04:16:05

标签: python python-3.x opencv3.0

好的,所以我已经为此花了一段时间。我对图像进行了逆FFT,可以使用cv2.imshow很好地显示它。

plt.subplot(131), plt.imshow(img_back)
plt.title('Subtracted'), plt.xticks([]), plt.yticks([])

enter image description here

但是,当我尝试使用cv2.imwrite保存同一图像时,会得到纯白色图像。我想念什么??

cv2.imwrite("my_car_preprossed.jpg", img_back)

以下是img_back

的相关详细信息
img_back.dtype : dtype('float32')
np.finfo(img_back.dtype) : finfo(resolution=1e-06, min=-3.4028235e+38, max=3.4028235e+38, dtype=float32)
img_back.shape = (1944, 2592)

1 个答案:

答案 0 :(得分:0)

所以回答我自己的问题。事实证明,imwrite仅期望值在[0-255]范围内,因此我需要将图像缩放到该范围。 imshow没有这种问题。

为此,以下是技巧:

1)将最终输出图像(在这种情况下为f4)除以该图像中的最大值。 2)乘以255。

img_back = img_back / img_back.max()
img_back = img_back * 255
cv2.imwrite("my_img_preprossed.jpg", img_back)