Как определить лицо из QPixmap

Я хочу обнаружить лицо из растрового изображения метки, и я не знаю, как преобразовать QPixmap в массив numpy.

image = self.imageLabel.pixmap()
image = self.convertQPixmapToNumpyArray(image) # In her i 
      #can't convert QPixmap to numpy array

face = self.faceDetector(image)
face = self.convertNumpyArrayToPixmap(face)
self.faceLabel.setPixmap(QPixmap(face))

эта функция обнаруживает лицо и возвращает лицо.

def faceDetector(self, image):
        faceClassifier = cv2.CascadeClassifier(cv2.data.haarcascades + 
        'haarcascade_frontalface_alt.xml')
  
        gray = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
        faces = faceClassifier.detectMultiScale(gray, scaleFactor=1.1, 
                                                minNeighbors=5)

        for (x, y, w, h) in gray:
            cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 1)
            face = img[y:y + h, x:x + w]
            face = cv2.resize(face, (85, 85))

            return face

с помощью этой функции конвертировать массив numpy в растровое изображение

def convertNumpyArrayToPixmap(self, img):
    try:
        qformat = QtGui.QImage.Format_Indexed8
        if len(img.shape) == 3:
            if img.shape[2] == 4:
                qformat = QtGui.QImage.Format_RGBA8888
                pass
            else:
                qformat = QtGui.QImage.Format_RGB888
                outImage = QtGui.QImage(img, img.shape[1], 
                img.shape[0], img.strides[0], qformat)
                pixMap = outImage.rgbSwapped()
                return pixMap
    except AttributeError as e:
        print(e)

#Здесь должна быть функция, которая преобразует QPixmap в пустой массив для обнаружения лица.

def convertQPixmapToNumpyArray(self, numpy):
    pass

person user14666482    schedule 19.11.2020    source источник