使用opencv 在pyqt5界面显示一张图片:
QImage:将bgr格式转换为qt可以识别的格式
QPixmap:加载图片,并设定图片大小
setPixmap:显示图片
from PyQt5.Qt import *
import cv2 as cv
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("图片")
self.resize(600, 400)
self.setup_ui()
def setup_ui(self):
#定义一个label控件做为图片的容器
label=QLabel(self)
label.move(20,20)
label.resize(500,300)
#opencv创建的窗口不使用
# cv.namedWindow("img", cv.WINDOW_AUTOSIZE)
#使用opencv读入图片
img=cv.imread("3.jpg")
#将默认的bgr转换为rgb格式
rgb_img=cv.cvtColor(img,cv.COLOR_BGR2RGB)
#将bgr格式转换为qt可以识别的格式
img_dis = QImage(rgb_img,rgb_img.shape[1],rgb_img.shape[0],QImage.Format_RGB888)
print(rgb_img.shape[1],rgb_img.shape[0])
#加载图片,并设定图片大小
img_dis = QPixmap(img_dis).scaled(rgb_img.shape[1]/6,rgb_img.shape[0]/6)
#显示图片
label.setPixmap(img_dis)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec())