OpenCV写入不保存图像

时间:2019-09-12 07:54:55

标签: c++ opencv

我正在使用Basler相机,并且正在尝试使用OpenCV保存抓取的图像。但是,当我尝试使用imwrite()时,出现此错误:

imwrite _('C:/Users/Uporabnik/Desktop/slika.png'):无法写入数据:未知异常

我对获取的图像的转换:

openCvImage = Mat(image.GetHeight(), image.GetWidth(), CV_16U, (uint8_t *)image.GetBuffer());

尝试保存图像:

cv::imwrite("C:/Users/Uporabnik/Desktop/slika.png", openCvImage);

1 个答案:

答案 0 :(得分:0)

我也在使用basler相机。您还需要共享包含basler配置的代码。以下是我使用basler相机获取opencv格式的帧的方法:

#include <pylon/usb/BaslerUsbInstantCamera.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <pylon/PylonIncludes.h>    

using namespace std;
using namespace cv;
using namespace Pylon;
using namespace GenApi;
using namespace Basler_UsbCameraParams;

int main()
{
Mat openCvImage;
Pylon::PylonAutoInitTerm autoInitTerm;
CBaslerUsbInstantCamera camera(CTlFactory::GetInstance().CreateFirstDevice());
CImageFormatConverter formatConverter;
CPylonImage pylonImage;

    camera.MaxNumBuffer = 1;
    formatConverter.OutputPixelFormat= PixelType_BGR8packed;
    camera.StartGrabbing( c_countOfImagesToGrab);
    const uint8_t *pImageBuffer = (uint8_t *) ptrGrabResult->GetBuffer();
    formatConverter.Convert(pylonImage, ptrGrabResult);
    openCvImage= cv::Mat(ptrGrabResult->GetHeight(), ptrGrabResult>GetWidth(), CV_8UC3, (uint8_t *) pylonImage.GetBuffer());

      imshow("Basler Frame",openCvImage);
      waitKey(0);
      return 0;
}

但是首先,您需要使用“ imshow”功能来查看图像。 如果可以,则问题出在您的目录部分。否则,您需要共享有关启动basler摄像机的代码。