def pixmap_to_cv2(pixmap): # 将QPixmap转换为QImage image = pixmap.toImage() # 创建一个新的QImage,使用32位ARGB格式,以保留alpha通道信息 image_with_alpha = QtGui.QImage(image.size(), QtGui.QImage.Format_ARGB32) image_with_alpha.fill(0) # 将图像填充为完全透明 # 将原始图像绘制到带有alpha通道的图像上 painter = QtGui.QPainter(image_with_alpha) painter.drawImage(0, 0, image) painter.end() # 获取图像的像素数据 image_data = image_with_alpha.bits().tobytes() # 将像素数据转换为numpy数组 cv_image = np.ndarray(shape=(image_with_alpha.height(), image_with_alpha.width(), 4), dtype=np.uint8, buffer=image_data) cv_image = cv2.cvtColor(cv_image,cv2.COLOR_BGR2RGBA) return cv_image