0

我正在从由样式传输网络创建的 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 数组?

4

1 回答 1

2

我的疯狂猜测是

  1. output*255与浮点值不完全相同output
  2. jpg是有损格式,所以有些伪影是正常的。

你可以试试:

  1. output = np.clip(output*256,0, 255)
  2. 使用.png扩展名/格式保存
于 2019-12-11T20:12:40.870 回答