Как назвать обнаруженный объект в OpenCV - PullRequest
0 голосов
/ 29 мая 2019

Как назвать обнаруженный объект в openCV?

У меня есть простой код, который обнаруживает лицо, используя каскад Хаара в openCV.Это прекрасно работает, но мне нужно назвать обнаруженный объект.Например, когда я обнаруживаю лицо, в терминале (или над прямоугольником) выведите мне ЛИЦО и аналогично другому объекту.

Ниже я вставляю свой простой код.

Спасибо за каждый ответ.

import cv2
import sys

class HaarClassifier:
def __init__(self):
    self.faceCascade = 
cv2.CascadeClassifier('data/haarcascade_frontalface_default.xml')

def detectFace(self, grayFrame, outputFrame):
    colaScaleFactor = 1.2
    colaMinNeighs = 5
    faces = self.faceCascade.detectMultiScale(grayFrame, colaScaleFactor, colaMinNeighs)
    for (x, y, w, h) in faces:
        cv2.rectangle(outputFrame, (x, y), (x + w, y + h), (255, 0, 0), 2)

class Recognition(HaarClassifier):
def __init__(self):
    super().__init__()
    self.haarClassifier = HaarClassifier()

def capture(self):
    cap = cv2.VideoCapture(0)

    if cap.isOpened():
        return cap
    else:
        print("Failed on camera capture")
        sys.exit()

def start(self):
    cap = self.capture()
    while True:
        ret, img = cap.read()
        if ret:
            grayScale = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

            self.haarClassifier.detectFace(grayScale, img)

            cv2.imshow('img', img)
            k = cv2.waitKey(1)
            if k == ord('q'):
                break

    cap.release()
    cv2.destroyAllWindows()

if __name__ == "__main__":
recognition = Recognition()
recognition.start()
...