Как обрабатывать кадры с устройства VGA2USB, используя opencv C++?

Уважаемые участники переполнения стека, привет:
Я только что выучил немного opencv в VC++. Теперь я столкнулся с новой проблемой:
Я хочу ввести свои видеокадры с устройства EPIPHAN VGA2USB. Итак, я установил драйверы устройств, загрузил его SDK и открыл один из примеров проектов под названием V2U в Microsoft Visual Studio 2010. Используя SDK Release Notes.pdf, я добавил строку:

V2U_GrabFrame2* currFrame= FrmGrab_Frame(fg, V2U_GRABFRAME_FORMAT_RGB16, NULL);

к main функция этого (fg является объектом захвата кадра и FrmGrab_Frame, согласно PDF, возвращает кадр). Тип V2U_GrabFrame2 определяется как:

typedef struct ioctl_grabframe2 {
#define V2U_GrabFrame2_Fields(pointer) \
    pointer     pixbuf;     /* IN  should be filled by user process */\
    V2U_UINT32  pixbuflen;  /* IN  should be filled by user process */\
    V2U_UINT32  palette;    /* IN pixel format */\
    V2URect     crop;       /* IN/OUT cropping area; all zeros = full frame */\
    V2U_VideoMode mode;     /* OUT VGA mode */\
    V2U_UINT32  imagelen;   /* OUT size of the image stored in pixbuf */\
    V2U_INT32   retcode;    /* OUT return/error code */
    V2U_GrabFrame2_Fields(void*)
} V2U_PACKED V2U_GrabFrame2, V2UGrabFrame2;

в заголовочном файле. Возможно, мне придется создать cv::Mat объект из информации в currFrame, так что я могу обработать его с помощью инструментов opencv. Кто-нибудь поделится подобным опытом, который может помочь настоящему новичку, пожалуйста?!

0 ответов

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