目录
- 1. Opencv图像 转 QImage
- 2. Opencv图像 转 QPixmap
- 3. QImage 转 Opencv图像
- 4. QPixmap 转 opencv图像
- 5. QPixmap 转 QImage
- 6. QImage 转 QPixmap
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)
即可
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
即可
def qpixmap_to_cvimage(self, qpixmap):qimage = qpixmap.toImage() # 转为Qimagebuf = 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