【发布时间】:2019-03-11 00:58:49
【问题描述】:
我有一个像素大小(1761、460)的图像,我正在尝试使用 Python 使用 PIL 查找 RGB 值。图像中有 56 种不同的颜色。我正在运行以下代码,但我收到一条错误消息:
ValueError: too many values to unpack (expected 3)
有没有人知道更好的方法来查找图像的 RGB 值?
import numpy as np
import matplotlib.pyplot as plt
import colorsys
from PIL import Image
img_file=Image.open("orange 4.png")
img = img_file.load()
[xs, ys] = img_file.size
for x in range(0, xs):
for y in range(0, ys):
[r, g, b] = img[x, y]
r /= 255.0
g /= 255.0
b /= 255.0
【问题讨论】:
-
您确定图像是 RGB 模式图像吗?它可以被索引。
-
@kindall 检查是否为RGB模式图片?
-
@kindall 索引图像通常只有 1 个通道,即索引。如果错误说它有太多的值需要解压并且它期望 3,那么最有可能的猜测是有 4 个通道,即 RGBA。
-
哎呀,是的,当然。我读得太快了,认为没有足够的价值,而不是太多。不过补救方法是一样的:先转换成 RGB。
-
即使在转换为 RGB 格式后,我也会遇到同样的错误。 @kindall
标签: python image image-processing python-imaging-library rgb