我正在尝试在PYQT4中编写的GUI中显示作为ROS主题发布的图像。我正在使用cv_bridge获取我的ROS图像消息并将其转换为opencv图像。然后我将opencv图像转换为Qimage,然后将其转换为QPixmap以使用QLabel显示它。代码段是
def CallbackFrntCamImg(self,msg):
self.StatusFrntCam = True
FrntCamImg = self.CVBridge.imgmsg_to_cv2(msg, desired_encoding="passthrough")
cv2.imwrite("testimg.jpg",FrntCamImg)
FrntCamImg = cv2.cvtColor(FrntCamImg,cv2.COLOR_BGR2RGB)
height,width,channel = FrntCamImg.shape
frntcamimg = QImage(FrntCamImg,width,height,channel*width,QImage.Format_RGB888)
frntcamimg.save("TestImage.png")
self.frntcamqimg = QPixmap.fromImage(frntcamimg,Qt.AutoColor)
if self.frntcamqimg.isNull():
print "PixMap Image is NULL"
看起来CV图像已成功转换为QImage,但我从QImage生成的QPixmap为Null。
我知道ROS Image - > CV图像和CV图像 - > QImage有效,因为我能够成功保存图像并查看它。
我尝试了不同的旗帜,但没有任何区别。我不确定我错过了什么。任何帮助表示赞赏。
由于