从float64到uint8的有损转换>> [

问题描述 投票:0回答:1
来自

https://www.makeartwithpython.com/blog/visualizing-sort-algorithms-in-python/

的代码>from imageio import imsave import numpy as np newImage = np.random.randint(0, 255, (300, 300, 3)) in_hsv_h = color.convert_colorspace(newImage, 'RGB', 'HSV') in_hsv_s = in_hsv_h.copy() in_hsv_v = in_hsv_h.copy() for i in range(newImage.shape[0]): in_hsv_h[i,:,0] = np.sort(in_hsv_h[i,:,0]) in_hsv_s[i,:,1] = np.sort(in_hsv_s[i,:,1]) in_hsv_v[i,:,2] = np.sort(in_hsv_v[i,:,2]) imsave('testing-sorted-hue.png', color.convert_colorspace(in_hsv_h, 'HSV', 'RGB')) imsave('testing-sorted-saturation.png', color.convert_colorspace(in_hsv_s, 'HSV', 'RGB'))
Lossy conversion from float64 to uint8. Range [0, 1]. Convert image to uint8 prior to saving to suppress this warning.

仍然非常缺乏经验,有没有解决此问题的快速方法?

来自https://www.makeartwithpython.com/blog/visualizing-sort-algorithms-in-python/的代码from imageio import imsave import numpy as np newImage = np.random.randint(0,255,(300,300 ,3))in_hsv_h = ...

python rgb hsv
1个回答
2
投票
警告是不言自明的:color.convert_colorspace(in_hsv_h, 'HSV', 'RGB')的类型为float64imsave将元素转换为uint8

PNG图像的像素,每个分量存储为一个字节(红色表示一个字节,绿色表示一个字节,蓝色表示一个字节)。每个分量都是[0,255]范围内的整数值(类型uint8)。

© www.soinside.com 2019 - 2024. All rights reserved.