时间:2021-05-22
项目使用Pyqt作为UI框架,使用相机线程捕捉image,并在QGraphicsView中显示,遇到以下问题:
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 bytesPerLine, Format format) 中的bytesPerLine 参数不能省略,负责造成Qimage数据错误,显示图片不正常,此参数设置为image的width*image.channels
2、采集数据的线程为非UI线程,则在QGraphicsView中显示时不仅需要添加Item对象,并且更新显示线程需在UI线程中,否则QGraphicsView不会主动更新显示,使用信号将image放到UI线程中更新即可
3、保证在UI更新时,所需更新的image还未被销毁,由于处于不同的线程,所以image可存储于更新前不会被销毁的对象中
以上这篇Pyqt QImage 与 np array 转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
numpy.array可使用shape。list不能使用shape。可以使用np.array(listA)进行转换。(array转list:arrayBB.to
矩阵增加行np.row_stack()与np.column_stack()importnumpyasnpa=np.array([[4,4,],[5,5]])c=
Numpy数组转置很容易,两种写法np_array=np.array([[1,2],[3,4]])np_array.transpose()np.transpos
实例如下所示:u=array([[1,2],[3,4]])m=u.tolist()#转换为listm.remove(m[0])#移除m[0]m=np.array
如下所示:>>>importnumpyasnp>>>x=np.array([1,2])>>>y=np.array([[1],[2]])>>>z=np.array