Хорошо, предложение Марка решило проблему с линковкой. Однако, поскольку программное обеспечение все еще не скомпилировано, и мы все еще находимся в теме «Компиляция программы для использования камеры Basler», я продолжу с проблемой области действия:
g ++ $ (pkg-config --cflags --libs opencv4) GrabV3.cpp -I / opt / pylon5 / include -I / opt / pylon5 / include / pylon -L / opt / pylon5 / lib64 -L / opt / pylon5 / include / pylon
теперь выдает следующую ошибку:
GrabV3.cpp: In function ‘int main(int, char**)’:
GrabV3.cpp:84:32: error: ‘CV_FOURCC’ was not declared in this scope
cvVideoCreator.open(filename,CV_FOURCC('D','I','V','X'),20,FrameSize,true);
После «и так далее» (см. Мой первый пост) код продолжается следующим образом:
try
{
// Create an instant camera object with the camera device found first.
CInstantCamera camera( CTlFactory::GetInstance().CreateFirstDevice());
camera.Open();
INodeMap& nodeMap = camera.GetNodeMap();
CEnumerationPtr TestImageSelector = nodeMap.GetNode("TestImageSelector");
TestImageSelector->FromString("Testimage4");
CIntegerPtr Width = nodeMap.GetNode("Width");
CIntegerPtr Height = nodeMap.GetNode("Height");
Size FrameSize = Size(Width->GetValue(),Height->GetValue());
stringstream s ;
s<<"_" ;
s<< filecounter;
filename = filenameBase;
filename += s.str() + ".avi";
//cvVideoCreator.open("``/opt/PylonTest_DIVX.avi",CV_FOURCC('M','P','4','2'),20,FrameSize,true);
cvVideoCreator.open(filename,CV_FOURCC('D','I','V','X'),20,FrameSize,true);
//cvVideoCreator.open("/opt/PylonTest.avi",CV_FOURCC('M','J','P','G'),20,FrameSize,true);
// Print the model name of the camera.
cout << "Using device " << camera.GetDeviceInfo().GetModelName() << endl;
// The parameter MaxNumBuffer can be used to control the count of buffers
// allocated for grabbing. The default value of this parameter is 10.
camera.MaxNumBuffer = 5;
CImageFormatConverter fc;
fc.OutputPixelFormat = PixelType_BGR8packed;
CPylonImage image;
// Start the grabbing of c_countOfImagesToGrab images.
// The camera device is parameterized with a default configuration which
// sets up free-running continuous acquisition.
camera.StartGrabbing();
// This smart pointer will receive the grab result data.
CGrabResultPtr ptrGrabResult;
CV_FOURCC ('D', 'I', 'V', 'X') - это функция INLINE, определенная в /usr/include/opencv2/videoio/videoio_c.h, которой сейчас нетобласть действия по какой-то причине.
Я пытался связать его брутфорс, включив
#include "/usr/include/opencv2/videoio/videoio_c.h"
, но это привело к полному нарушению связи. Спасибо за @Mark для того, чтобы получить меня так далеко;как дальше отсюда?