好的,所以我已经为此花了一段时间。我对图像进行了逆FFT,可以使用cv2.imshow很好地显示它。
plt.subplot(131), plt.imshow(img_back)
plt.title('Subtracted'), plt.xticks([]), plt.yticks([])
但是,当我尝试使用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)
答案 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)