1. Opencv图像 转 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图像 转 QPixmap
只需要加上一行 QPixmap.fromImage(qimage)
即可文章来源:https://www.toymoban.com/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 转 Opencv图像
def qimage_to_cvimage(self, qimage):
buf = qimage.constBits() # 获取图像数据的指针
width, height = qimage.width(), qimage.height() # 获取图像的宽度和高度
buf.setsize(qimage.byteCount()) # 设置缓冲区的大小为图像的字节数
return np.array(buf).reshape(height, width, 4).copy() # 将缓冲区转换为 NumPy 数组,并重新形状为图像尺寸
4. QPixmap 转 opencv图像
只需要加上一行 qimage = qpixmap.toImage() # 转为Qimage
即可文章来源地址https://www.toymoban.com/news/detail-845274.html
def qpixmap_to_cvimage(self, qpixmap):
qimage = qpixmap.toImage() # 转为Qimage
buf = qimage.constBits() # 获取图像数据的指针
width, height = qimage.width(), qimage.height() # 获取图像的宽度和高度
buf.setsize(qimage.byteCount()) # 设置缓冲区的大小为图像的字节数
return np.array(buf).reshape(height, width, 4).copy() # 将缓冲区转换为 NumPy 数组,并重新形状为图像尺寸
5. QPixmap 转 QImage
qimage = qpixmap.toImage() # 转为Qimage
6. QImage 转 QPixmap
qpixmap = QPixmap.fromImage(qimage) # 转为QPixmap
到了这里,关于pyqt5 QImage QPixmap Opencv图像 相互转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!