Pyqt QImageとnp ary変換方法


プロジェクトはPyqtをUIフレームとして使用し、カメラのスレッドを使ってイメージをキャプチャーし、QGraphics Viewに表示される。
1、採取したデータはnparrayデータで、QImage変換コードに変換する必要があります。

img=cv2.resize(src=img,dsize=None,fx=0.2,fy=0.2)
img2=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
self._image = QtGui.QImage(img2[:],img2.shape[1], img2.shape[0],img2.shape[1] * 3, QtGui.QImage.Format_RGB888)
注意:QImage(uchar*data,int width,int height,int bytes PerLine,Format format)の中のbytes PerLineパラメータは省略できません。Qimageデータエラーを引き起こし、画像が正常でないことを表示します。このパラメータはimageのwidth*marge.chanelsに設定します。
2、データを採取するスレッドが非UIスレッドである場合、QGraphics Viewに表示される時はItemオブジェクトを追加するだけでなく、表示スレッドを更新するにはUIスレッドにいる必要があります。そうでないと、QGraphics Viewは自動的に表示を更新しません。信号を使ってイメージをUIスレッドに入れて更新すればいいです。
3、UI更新時に更新するイメージはまだ廃棄されていないことを保証します。異なるスレッドがあるので、イメージは更新前に廃棄されない対象に保存できます。
以上のPyqt QImageとnp array変換方法は、小編集が皆さんに共有しているすべての内容です。参考にしていただければと思います。よろしくお願いします。