我正在通过样式传输网络创建的NumPy数组创建图像。
output = net.forward()
输出是通过网络处理重新规范化的:
output = output.reshape((3, output.shape[2], output.shape[3]))
output[0] += 103.939
output[1] += 116.779
output[2] += 123.680
output /= 255.0
output = output.transpose(1, 2, 0)
当我用cv2.imshow
显示此图像时,会得到正确的图像。现在,我尝试将其转换为图像文件以进行保存和显示。首先,我使用以下方法将图像重新缩放到0-255的整数范围:
output = (output * 255).astype(np.uint8)
然后将其保存为:
cv2.imwrite(path + "/" + "Test_Out" + '.jpg', output)
后一幅图像具有我无法解释的颜色伪影。 (我没有足够的声誉来显示图像。)
有什么想法如何正确显示NumPy数组?
答案 0 :(得分:1)
我的猜测是
output*255
与值output
的浮点数不完全相同jpg
是有损格式,因此某些伪像是正常的。您可以尝试:
output = np.clip(output*256,0, 255)
.png
扩展名/格式保存