将帧传递给另一个类

2024-06-28 15:49:29 发布

您现在位置:Python中文网/ 问答频道 /正文

如何从另一个类传递img帧

示例:

我有这个过程

import cv2
from camera import Camera
from fire_detection import FireDetection

camera = Camera()
camera.connect()
while True:
    frame = camera.get_frame()
    if frame is not None:
        #Especifico a configuração dos bombeiros
        FireDetection = FireDetection.configBombeiros(frame)
        #cv2.imshow('frame', frame)

    if cv2.waitKey(100) & 0xFF == ord('q'):
        camera.disconnect()
        cv2.destroyWindow('frame')

在这个类中,我调用firedection=firedection.configBombeiros(frame)并将该帧作为参数传递,但我收到了以下错误:

Traceback (most recent call last):
  File "processamento.py", line 11, in <module>
    FireDetection = FireDetection.configBombeiros(frame)
  File "E:\Matheus\MachineLearning\mvc_fogo\novo padrao\fire_detection.py", line 17, in configBombeiros
    mascara = cv2.inRange(rgb, minimo, maximo)
TypeError: Expected Ptr<cv::UMat> for argument '%s'

类fireDetection()

import cv2

class FireDetection(object):

    def __init__(self):
        print('Inicio')

    def configBombeiros(frame):
        minimo = [170, 0, 245]
        maximo = [220, 255, 255]


        blur = cv2.GaussianBlur(frame, (21, 21), 0)
        #Metodo de detecção de cor (pode ser usado HSV ou RGB) RGB se utiliza o metodo padrão de cor, exemplo: Vermelho 255,0,0
        rgb = frame.copy()

        mascara = cv2.inRange(rgb, minimo, maximo)


        cv2.imshow('frame', frame)

Tags: fromimportifdergbcv2framefire
1条回答
网友
1楼 · 发布于 2024-06-28 15:49:29

很可能是minimomaximo类型的问题。文档here说它们需要是数组或定标器。因此,尝试传入numpy数组或scaler

minimo = np.array([170, 0, 245])
maximo = np.array([220, 255, 255])

相关问题 更多 >