我有一个像素大小为(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)
答案 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')