问题遇到的现象和发生背景
PyQt5 opencv 播放视频,先读取第一帧图片显示出来,图片储存在frame中,但是显示出的图片颜色是错的?
问题相关代码,请勿粘贴截图
self.video = cv2.VideoCapture(address)
self.fps = self.video.get(cv2.CAP_PROP_FPS)
ret, frame = self.video.read()
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
self.label_video.setScaledContents(True)
self.label_video.setGeometry(QtCore.QRect(80, 10, int(frame.shape[1] / 3), int(frame.shape[0] / 3)))
img = QImage(frame.data, frame.shape[1], frame.shape[0], frame.shape[1] * 3, QImage.Format_RGB888)
self.label_video.setPixmap(QPixmap.fromImage(img))
self.label_video.show()
运行结果及报错内容
显示的颜色有误,如下图

我的解答思路和尝试过的方法
知道opencv和QImage之间图片要相互转换,但不明白哪里有误
我想要达到的结果
正确显示颜色,如下图
