2
respostas

Erros com as funções GMG, CNT e MOG

mask = background_subtractor.apply(frame) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **cv2.error: Unknown C++ exception from OpenCV code**

ja instalei as bibliotecas opencv-python e opencv-contrib-python, porém continuo obtendo os erros para as funções:

    return cv2.bgsegm.BackgroundSubtractorGMG()
    return cv2.bgsegm.BackgroundSubtractorCNT()
    return cv2.bgsegm.BackgroundSubtractorMOG()
2 respostas

Correto seria:

  if algorithm_type == 'KNN':
        return cv2.createBackgroundSubtractorKNN()
    if algorithm_type == 'GMG':
        return cv2.bgsegm.createBackgroundSubtractorMOG()
    if algorithm_type == 'CNT':
        return cv2.bgsegm.createBackgroundSubtractorMOG()
    if algorithm_type == 'MOG':
        return cv2.bgsegm.createBackgroundSubtractorMOG()
    if algorithm_type == 'MOG2':
        return cv2.createBackgroundSubtractorMOG2()

Olá, Jonatas! Parece que você está enfrentando um problema com as funções:

cv2.bgsegm.BackgroundSubtractorGMG(), 
cv2.bgsegm.BackgroundSubtractorCNT() e 
cv2.bgsegm.BackgroundSubtractorMOG()

Aqui estão algumas possíveis soluções:

Verifique a versão do OpenCV: As funções que você está tentando usar podem não estar disponíveis em todas as versões do OpenCV. Você pode precisar atualizar para uma versão mais recente do OpenCV ou usar uma versão específica que suporte essas funções. Instale o opencv-contrib-python: As funções que você está tentando usar fazem parte do módulo bgsegm, que está incluído no pacote opencv-contrib-python13. Se você ainda não o instalou, você pode fazer isso usando o comando pip install opencv-contrib-python. Use funções alternativas: Se você ainda estiver tendo problemas, pode tentar usar funções alternativas que estão disponíveis em todas as versões do OpenCV. Por exemplo, você pode usar a função cv2.createBackgroundSubtractorMOG2() em vez de cv2.bgsegm.createBackgroundSubtractorMOG().

  if algorithm_type == 'KNN':
        return cv2.createBackgroundSubtractorKNN()
    if algorithm_type == 'GMG':
        return cv2.bgsegm.createBackgroundSubtractorMOG()
    if algorithm_type == 'CNT':
        return cv2.bgsegm.createBackgroundSubtractorMOG()
    if algorithm_type == 'MOG':
        return cv2.bgsegm.createBackgroundSubtractorMOG()
    if algorithm_type == 'MOG2':
        return cv2.createBackgroundSubtractorMOG2()

(Esta solução pode ser testada, porem valide se faz sentido)

Espero que isso ajude! Se você ainda estiver enfrentando problemas, por favor, forneça mais detalhes sobre o erro que está recebendo.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software