這篇文章主要介紹了Pyqt QImage與np array如何轉(zhuǎn)換,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了依安免費(fèi)建站歡迎大家使用!項(xiàng)目使用Pyqt作為UI框架,使用相機(jī)線程捕捉image,并在QGraphicsView中顯示,遇到以下問(wèn)題:
1、采集的數(shù)據(jù)為nparray數(shù)據(jù),需轉(zhuǎn)換為QImage 轉(zhuǎn)換代碼如下:
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 參數(shù)不能省略,負(fù)責(zé)造成Qimage數(shù)據(jù)錯(cuò)誤,顯示圖片不正常,此參數(shù)設(shè)置為image的width*image.channels
2、采集數(shù)據(jù)的線程為非UI線程,則在QGraphicsView中顯示時(shí)不僅需要添加Item對(duì)象,并且更新顯示線程需在UI線程中,否則QGraphicsView不會(huì)主動(dòng)更新顯示,使用信號(hào)將image放到UI線程中更新即可
3、保證在UI更新時(shí),所需更新的image還未被銷毀,由于處于不同的線程,所以image可存儲(chǔ)于更新前不會(huì)被銷毀的對(duì)象中
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Pyqt QImage與np array如何轉(zhuǎn)換”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!