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. Когда я искал свой тип ошибки, я в основном находил ответы вроде
"Поскольку эта проблема обычно указывает на логическую ошибку, невозможно дать общий рецепт для ее устранения".
или решения для конкретных программ, таких как моя.