OpenCV + GigE Vision Cameras + C++
Уже несколько дней я работаю над камерой Мако (использую Ethernet (GigE)). Мне нужно вернуть поток видео, чтобы интегрировать его в программное обеспечение. Я пытаюсь использовать библиотеку OpenCV для code::blocks, но у меня всегда возникает ошибка, говорящая о том, что ей не удается увидеть поток видео. Кто-нибудь может мне помочь? Спасибо большое за вашу помощь:)
#include <opencv2/imgproc/imgproc_c.h>
#include "opencv2/highgui/highgui.hpp"
#include <stdio.h>
int main(int argc, char** argv)
{
printf("Press ESC to exit\n");
cvNamedWindow( "First Example of PVAPI Integrated", CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateCameraCapture( CV_CAP_PVAPI );
assert( capture != NULL );
IplImage* frame;
while(1)
{
frame = cvQueryFrame(capture);
if(!frame) break;
cvShowImage( "First Example of PVAPI Integrated", frame);
char c = cvWaitKey(2500);
if( c == 27) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "First Example of PVAPI Integrated" );
}
1 ответ
Я сделал это с помощью камеры GigE серии HX от Baumer и GAPI SDK Baumer. GAPI основан на genIcam и должен работать для любой камеры, совместимой с genIcam (Mako от Allied Vision совместим с genIcam).
Я дал исчерпывающее объяснение того, как я это сделал, используя openCV, Visual Studios C++ и GAPI SDK Баумера ЗДЕСЬ.
В итоге вам нужно
- Установите openCV для C++
- Установите GAPI SDK
- Сконфигурируйте ваш проект C++, как указано в руководстве программиста Baumer
- Используйте пример кода 005_PixelTransformation из Baumer и добавьте окно openCV для просмотра захваченных кадров
Вы можете обратиться к руководству программиста и другим примерным кодам для шагов, таких как изменение параметров камеры (ROI, время экспозиции, усиление и т. Д.).
ПРИМЕЧАНИЕ. Вот как я это сделал. Это не единственный способ сделать это. Basler создает похожий API, а также предоставляет документацию и примеры, так что вы можете попробовать это. PV_API Allied Vision теперь является устаревшим программным обеспечением. Их новый SDK - Vimba 2.0.