TypeError: объект "Детектор" не вызывается (Python)

Я пытаюсь создать приложение на Python, которое захватывает и обрабатывает дату изображения с камеры. У меня проблемы с моим бэкэндом: когда я пытаюсь создать объект из моего класса детектора, я получаю сообщение об ошибке:

Ошибка типа: объект "Детектор" не вызывается

Это мой код:

import cv2
import sys
from PIL import Image
from Detector_Scripts.Hough_Transform import SizeBy_HoughTransform

class VideoCapture:

    def __init__(self):
        self.detect = Detector()
        # pass

    def open_camera(self, cam_id):
        self.cam_id = cam_id
        self.device = cv2.VideoCapture(self.cam_id)

    def close_camera(self):
        self.device.release()

    def get_frame(self):
        ret, frame = self.device.read()
        if ret == False:
            print(sys.stderr, "Error capturing from video device.")
            return None
        self.frame = frame
        frame = cv2.flip(frame, 1)
        cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)

        return Image.fromarray(cv2image)

    def show_frame(self):
        cv2.imshow("Camera"+self.cam_id.__str__(),self.frame)

    def detect(self, frame):
        self.detect.run_Detectors(frame)
        pass

    def cleanup(self):
        try:
            self.device.release()
            cv2.destroyAllWindows()
        except:
            pass

    def __del__(self):
        self.cleanup()



class Detector():

    def __init__(self):
        # self.find_scripts()
        self.create_detectors()


    def create_detectors(self):
        self.hc = SizeBy_HoughTransform()



    def run_Detectors(self,frame):
        self.hc.detect(frame)
        # pass


    def __del__(self):
        pass


if __name__ == '__main__':
    vidcap= VideoCapture()
    vidcap.open_camera(0)
    while True:
        img = vidcap.get_frame()
        vidcap.detect(img)
        cv2.imshow("Test",img)

Модуль Hough-transform, который я импортирую, является одним из запланированных сценариев детектора, но он не способствует возникновению ошибки. Вы можете принять сценарий как:

class SizeBy_HoughTransform:

    def detect(self,frame ):
        pass

Я не понимаю, почему я не могу создать простой объект детектора и вызвать метод run_Detectors. Когда я искал свой тип ошибки, я в основном находил ответы вроде

"Поскольку эта проблема обычно указывает на логическую ошибку, невозможно дать общий рецепт для ее устранения".

или решения для конкретных программ, таких как моя.

0 ответов

Другие вопросы по тегам