Как обрабатывать кадры с устройства 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. Кто-нибудь поделится подобным опытом, который может помочь настоящему новичку, пожалуйста?!