ValueError:使用PIL解压缩的值太多(预期为3)

时间:2018-10-05 13:40:11

标签: python image image-processing python-imaging-library rgb

我有一个像素大小为(1761、460)的图像,我正在尝试使用PIL使用Python查找RGB值。图像中有56种不同的颜色。我正在运行以下代码,但出现错误消息: import java.util.*; public class Election { public static void main(String args[]){ System.out.println("Welcome to the polls! "); Candidate c1 = new Candidate(); Candidate c2 = new Candidate(); Candidate c3 = new Candidate(); Candidate c4 = new Candidate(); c1 = inputCandidate(); c2 = inputCandidate(); c3 = inputCandidate(); c4 = inputCandidate(); c1 = showMessage(); } private static Candidate inputCandidate(){ Scanner sc = new Scanner(System.in); String inputN; Candidate c = new Candidate(); System.out.println("Enter candidate"); inputN = sc.nextLine(); c.setName(inputN); return c; } private static Candidate showMessage(){ Candidate c = new Candidate(); System.out.println(c.getName()); return c; } }

有人知道一种更好的方法来查找图像的RGB值吗?

ValueError: too many values to unpack (expected 3)

1 个答案:

答案 0 :(得分:1)

并非所有的PNG文件都是相同的。

有很多方法可以在PNG中指定像素信息,this document显示了8种基本类型。根据文件的类型,每个像素可以具有与每个像素相关的1、2、3或4个值。

我猜您要打开的文件是带有alpha通道的RGB。您可以使用将像素信息发送到列表,并像这样遍历它:

pixel = img[x, y]
r, g, b = pixel[0], pixel[1], pixel[2]

您可以尝试确定要处理的PNG类型,也可以使用以下方法将图像转换为RGB:

img_file = img_file.convert('RGB')