from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt5.QtGui import QPixmap, QImage
import numpy as np
import sys
def print_np():
app = QApplication(sys.argv)
win = QWidget()
label = QLabel()
img = np.ones((500, 500))
qImg = QPixmap(QImage(img.data, img.shape[0], img.shape[1], QImage.Format_Indexed8))
label.setPixmap(qImg)
vbox = QVBoxLayout()
vbox.addWidget(label)
win.setLayout(vbox)
win.show()
sys.exit(app.exec_())
在这段代码中,我试图在QtWindow上显示2d np数组。
我希望看到一个白色的正方形,但是我仍然收到如下奇怪的显示。
我相信这是因为错误的QImage.Format(数据类型),所以我尝试了每个选项,但没有帮助。
https://srinikom.github.io/pyside-docs/PySide/QtGui/QImage.html#PySide.QtGui.QImage
作为文档中的示例,我应该首先将np数组更改为jpg还是png吗?
答案 0 :(得分:2)
有两个问题:
$query = "LOAD DATA INFILE '$filePath' INTO TABLE {$this->Table} FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n'";
必须为dtype
np.uint8
必须为format
QImage.Format_RGB888
或0
才能显示,整个范围为0..255 因此,请牢记:
1
++(将2D图像转换为黑白)
#!/usr/bin/env python3
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt5.QtGui import QPixmap, QImage
import numpy as np
import sys
def main():
app = QApplication(sys.argv)
win = QWidget()
label = QLabel()
img = np.zeros((500, 500, 3), dtype=np.uint8)
# Turn up red channel to full scale
img[...,0] = 255
qImg = QPixmap(QImage(img.data, img.shape[0], img.shape[1], QImage.Format_RGB888))
label.setPixmap(qImg)
vbox = QVBoxLayout()
vbox.addWidget(label)
win.setLayout(vbox)
win.show()
sys.exit(app.exec_())
main()
它将创建一个窗口
关键字:Python,Qt,QImage,QPixmap,图像处理。