1. Opencv圖像 轉(zhuǎn) QImage
def cvimage_to_qimage(cvimage):
image = cv2.cvtColor(cvimage, cv2.COLOR_BGR2RGB)
qimage = QImage(image.data, image.shape[1], image.shape[0], image.strides[0], QImage.Format_RGB888)
return qimage
2. Opencv圖像 轉(zhuǎn) QPixmap
只需要加上一行 QPixmap.fromImage(qimage)
即可文章來源:http://www.zghlxwxcb.cn/news/detail-845274.html
def cvimage_to_qpixmap(cvimage):
image = cv2.cvtColor(cvimage, cv2.COLOR_BGR2RGB)
qimage = QImage(image.data, image.shape[1], image.shape[0], image.strides[0], QImage.Format_RGB888)
return QPixmap.fromImage(qimage)
3. QImage 轉(zhuǎn) Opencv圖像
def qimage_to_cvimage(self, qimage):
buf = qimage.constBits() # 獲取圖像數(shù)據(jù)的指針
width, height = qimage.width(), qimage.height() # 獲取圖像的寬度和高度
buf.setsize(qimage.byteCount()) # 設(shè)置緩沖區(qū)的大小為圖像的字節(jié)數(shù)
return np.array(buf).reshape(height, width, 4).copy() # 將緩沖區(qū)轉(zhuǎn)換為 NumPy 數(shù)組,并重新形狀為圖像尺寸
4. QPixmap 轉(zhuǎn) opencv圖像
只需要加上一行 qimage = qpixmap.toImage() # 轉(zhuǎn)為Qimage
即可文章來源地址http://www.zghlxwxcb.cn/news/detail-845274.html
def qpixmap_to_cvimage(self, qpixmap):
qimage = qpixmap.toImage() # 轉(zhuǎn)為Qimage
buf = qimage.constBits() # 獲取圖像數(shù)據(jù)的指針
width, height = qimage.width(), qimage.height() # 獲取圖像的寬度和高度
buf.setsize(qimage.byteCount()) # 設(shè)置緩沖區(qū)的大小為圖像的字節(jié)數(shù)
return np.array(buf).reshape(height, width, 4).copy() # 將緩沖區(qū)轉(zhuǎn)換為 NumPy 數(shù)組,并重新形狀為圖像尺寸
5. QPixmap 轉(zhuǎn) QImage
qimage = qpixmap.toImage() # 轉(zhuǎn)為Qimage
6. QImage 轉(zhuǎn) QPixmap
qpixmap = QPixmap.fromImage(qimage) # 轉(zhuǎn)為QPixmap
到了這里,關(guān)于pyqt5 QImage QPixmap Opencv圖像 相互轉(zhuǎn)換的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!