Member 14629414 Ответов: 0

Как сохранить захваченное видео камерой basler на ПК?


Я снял видео с обеих моих камер basler, используя приведенный ниже код. Проблема в том, что я хочу сохранить 2 видео в файлы на своем компьютере, но я точно не знаю, какой код мне нужен.Вот мой код:
#include <iostream>
#include <pylon/PylonIncludes.h>
#ifdef PYLON_WIN_BUILD
#include <pylon/PylonGUI.h>
#endif

using namespace Pylon;
using namespace std;
static const uint32_t c_countOfImagesToGrab = 100000;
static const size_t c_maxCamerasToUse = 2;
int main(int argc, char* argv[])
{
int exitCode = 0;
PylonInitialize();

try
{
    CTlFactory& tlFactory = CTlFactory::GetInstance();
    DeviceInfoList_t devices;
    if (tlFactory.EnumerateDevices(devices) == 0)
    {
        throw RUNTIME_EXCEPTION("No camera present.");
    }
    CInstantCameraArray cameras(max(devices.size(), c_maxCamerasToUse));
    for (size_t i = 0; i < cameras.GetSize(); ++i)
    {
        cameras[i].Attach(tlFactory.CreateDevice(devices[i]));
        cout << "Using device " <<
cameras[i].GetDeviceInfo().GetModelName() << endl;
    }
  cameras.StartGrabbing();
  CGrabResultPtr ptrGrabResult;
 for (uint32_t i = 0; i < c_countOfImagesToGrab && cameras.IsGrabbing(); ++i)
{
cameras.RetrieveResult(5000, ptrGrabResult, TimeoutHandling_ThrowException);
intptr_t cameraContextValue = ptrGrabResult->GetCameraContext();
#ifdef PYLON_WIN_BUILD
Pylon::DisplayImage(cameraContextValue, ptrGrabResult);
#endif
cout << "Camera " << cameraContextValue << ": " <<
cameras[cameraContextValue].GetDeviceInfo().GetModelName() << endl;
cout << "GrabSucceeded: " << ptrGrabResult->GrabSucceeded() << endl;
cout << "SizeX: " << ptrGrabResult->GetWidth() << endl;
cout << "SizeY: " << ptrGrabResult->GetHeight() << endl;
const uint8_t* pImageBuffer = (uint8_t*)ptrGrabResult->GetBuffer();
cout << "Gray value of first pixel: " << (uint32_t)pImageBuffer[0] << endl <<
endl;
    }
}
catch (const GenericException& e)
{
    // Error handling
    cerr << "An exception occurred." << endl
        << e.GetDescription() << endl;
    exitCode = 1;
}
cerr << endl << "Press Enter to exit." << endl;
while (cin.get() != '\n');

PylonTerminate();

return exitCode;
}

Спасибо!

Что я уже пробовал:

Я попробовал код cv::CreateVideoWriter FOURCC('P','I','M','1'), но он не работает так хорошо
Он сказал, что "CreateVideoWriter" не был объявлен, а также запятая", "had error:" ')' обязательны"

Richard MacCutchan

- но это не так хорошо работает."
Пожалуйста, отредактируйте свой вопрос и объясните, что именно это означает.

Member 14629414

@Richard MacCutchan я отредактировал этот вопрос.

0 Ответов