#include <pylon\PylonIncludes.h> #include <pylon\PylonGUIIncludes.h> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace Pylon; using namespace cv; void main() { VideoCapture capture(1); if (!capture.isOpened()) { printf("Open camera is failed"); system("pause"); return ; } // // 设置摄像头的拍摄属性为 分辨率640x480,帧率30fps capture.set(CV_CAP_PROP_FRAME_HEIGHT, 1024 ); capture.set(CV_CAP_PROP_FRAME_WIDTH, 1280 ); capture.set(CAP_PROP_FPS, 30.0); // //获得帧率 double frameCount = capture.get(CV_CAP_PROP_FPS); VideoWriter writer("VideoTest.avi", CV_FOURCC('M', 'J', 'P', 'G'), frameCount, Size(1280, 1024)); while (capture.isOpened()) { Mat frame; if ((frame.rows != 0) || (frame.cols != 0)) { printf("frame capture failed\n"); system("pause"); exit(0); } capture >> frame; writer << frame; imshow("VideoPlay", frame); if (waitKey(3) == 27 || waitKey(3) == 32 || waitKey(3) == 13) { break; } } // 释放相关对象 capture.release(); writer.release(); }
-------------------------------------------
#include <pylon\PylonIncludes.h> #include <pylon\PylonGUIIncludes.h> //#include <opencv2/core/core.hpp> //#include <opencv2/highgui/highgui.hpp> #include <opencv.hpp> using namespace Pylon; using namespace cv; #define EXE_OpenBaslerCamera 0 #define DLL_OpenBaslerCamera 10 #if DLL_OpenBaslerCamera #define EXPORT_API __declspec(dllexport) VideoCapture basler_camera; VideoWriter writer_Video("F://Buffers//Bandicam//VideoTest.avi", CV_FOURCC('M', 'J', 'P', 'G'), 25, Size(1280, 1024)); extern "C" bool EXPORT_API openCamera() { bool isOpen = false; while (!basler_camera.isOpened()) { std::cout << "Cannot open the camera!" << std::endl; //0123 basler_camera.open(3); } basler_camera.set(CV_CAP_PROP_FRAME_WIDTH, 1280); basler_camera.set(CV_CAP_PROP_FRAME_HEIGHT, 1024); if (basler_camera.isOpened()) { isOpen = true; //保存 double frameCount = basler_camera.get(CV_CAP_PROP_FPS); } return isOpen; } extern "C" void EXPORT_API recieveFrame(uchar* texturePtr) { Mat my_frameBGR; Mat my_frameRBG; basler_camera >> my_frameBGR; //写视频 writer_Video << my_frameBGR; if (my_frameBGR.data) { cvtColor(my_frameBGR, my_frameRBG, CV_BGR2RGB); memcpy(texturePtr, my_frameRBG.data, my_frameRBG.cols*my_frameRBG.rows*my_frameRBG.channels()*sizeof(uchar)); } } extern "C" void EXPORT_API closeCamera() { if (basler_camera.isOpened()) { basler_camera.release(); writer_Video.release(); } } #endif #if EXE_OpenBaslerCamera void main() { VideoCapture capture(3); if (!capture.isOpened()) { printf("Open camera is failed"); system("pause"); return ; } // // 设置摄像头的拍摄属性为 分辨率640x480,帧率30fps capture.set(CV_CAP_PROP_FRAME_HEIGHT, 1024 ); capture.set(CV_CAP_PROP_FRAME_WIDTH, 1280 ); //capture.set(CAP_PROP_FPS, 30.0); // //获得帧率 double frameCount = capture.get(CV_CAP_PROP_FPS); VideoWriter writer("VideoTest.avi", CV_FOURCC('M', 'J', 'P', 'G'), frameCount, Size(1280, 1024)); while (capture.isOpened()) { Mat frame; if ((frame.rows != 0) || (frame.cols != 0)) { printf("frame capture failed\n"); system("pause"); exit(0); } capture >> frame; writer << frame; imshow("VideoPlay", frame); if (waitKey(3) == 27 || waitKey(3) == 32 || waitKey(3) == 13) { break; } } // 释放相关对象 capture.release(); writer.release(); } #endif