获取QImage每个像素的RGB值

时间:2019-07-10 11:39:43

标签: python pyqt pyqt5

我尝试获取图像每个像素的RGB值。但似乎有些东西无法正常工作。

self.img = QImage(self.fname[0]) 
self.img = self.img.convertToFormat(QImage.Format_Grayscale8)
for i in range(self.img.height()):
    for j in range(self.img.width()):
        print(self.img.pixel(i, j), end="   ")
    print("\n")

所以我的代码给了我

  

4278650631 4278650631 4278650631 4278650631 12345 12345

     

4278650631 4294967295 4278650631 4278650631 12345 12345

     

4278650631 4278650631 4278650631 4278650631 12345 12345

     

4278650631 4294967295 4278453252 4278650631 12345 12345

此图片(6x4像素): enter image description here

图片第二行有3个白色像素,但是我打印的值与图片中的颜色有所不同。另外,对于每行的最后两个像素,打印输出具有奇怪的12345。所以我不能将值转换为RGB。我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

您可以尝试打印

qRed(self.img.pixel(i, j))
qGreen(self.img.pixel(i, j))
qBlue(self.img.pixel(i, j))