OpenCV imwrite不会保存图像
OpenCV imwrite doesn't save the image
我使用的是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);
我也在使用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相机的代码。
请注意图像的尺寸,您可以简单地打印并查看形状是否正确。就我而言,我错误地将批量大小维度包含在图像形状中,然后通过图像 = 图像[0] 来解决它。
相关文章:
- Gstreamer:每 5 秒使用多文件墨水保存图像/jpeg
- OpenCV imwrite不会保存图像
- qpixmap qclipboard和保存图像倒置
- 如何从 GIFLIB 保存图像结构中获取 RGB 颜色数据
- 处理openCV后,保存图像要文件
- Haar检测-保存图像的Mat,以便获得并显示前一帧
- 在opencv中使用imwrite保存图像时,会将图像全部写入黑色,但imshow会正确显示
- CImg保存图像会更改值
- 通过WiFi从Android向Windows发送/保存图像时数据过多
- 使用 libpng - const 对象保存图像
- 无法使用OpenCV保存图像
- 如何在c中使用socket编程保存图像数据
- 通用Windows可以动态地绘制图形和保存图像
- 模糊保存图像检测对象使用OpenCV
- Qt抓取小部件和保存图像
- 如何在英特尔RealSense(Visual c++)中保存图像
- 如何从RGBA格式保存图像的缓冲区中创建opencv中的图像
- 如何使用libcurl保存图像
- 需要一些手来渲染、显示和保存图像
- 如何通过http下载和保存图像