Usando câmera personalizada no OpenCV (via GStreamer)

Estou usando a placa Nitrogen6x com câmera ov5640 (mipi).

A câmera não está usando v4l / v4l padrão, mas podemos transmitir vídeo usando o GStreamer para seu driver (mfw_v4l):

gst-launch mfw_v4lsrc ! autovideosink

Quero usar a câmera no OpenCV chamando-a pelo GStreamer (GStreamer dentro do OpenCV). Eu fiz uma pergunta sobre como ligar para o GStreamer dentro do OpenCVaqui, e este é o acompanhamento.

Se eu ativar o suporte ao GStreamer, ele será verificadono código fonte, mas o OpenCV tenta usar o V4L / V4L2 padrão para o GStreamer, que eu quero alterar. A seção sobre como ligar para o GStreamer está emcap_gstreamer.cpp:

    CvCapture* cvCreateCapture_GStreamer(int type, const char* filename )
{
    CvCapture_GStreamer* capture = new CvCapture_GStreamer;

    if( capture->open( type, filename ))
        return capture;

    delete capture;
    return 0;
}

Acho que essa é a seção em que devo trabalhar para apontar de alguma forma o driver da câmera. ("type" aqui provavelmente é um número relacionado ao driver (conforme definido em precomp.hpp), mas qual é o "filename"?)

Qualquer sugestão sobre como acessar a câmera via GStreamer seria útil e apreciada. Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion