我正在尝试获取图像中所有像素的HSV值。我用一个普通的洋红色图像测试了下面的代码,我得到的值与从在线转换器得到的值有很大的不同。我意识到的另一件事是,结果数组中没有一个值超过255(洋红色的H值约为300)
`from PIL import Image
infile = 'magenta.jpg'
saturation = 0
img = Image.open(infile)
width, height = img.size
img_hsv = img.convert('HSV')
for x in range(width-1):
for y in range(height-1):
hsv = img_hsv.getpixel((x,y))
print(hsv)`
1条答案
按热度按时间s5a0g9ez1#
将“R”值乘以360/255,“G”值乘以100/255,“B”值乘以100/255,得到相应的“H”、“S”和“V”值。此外,在处理实际图像时,我发现使用方法image.getdata()更容易、更有效,而不是循环遍历每个x和y值并使用image.getpixel(xy):