不能在openv中读/写映像
Can not read/write an image in opencv
我有这个代码来创建和编写一个图像在opencv:
char * outImage="C:/tmp/000014/outimage.jpg";
Mat gray_image(imageWidth,imageHeight, CV_8UC1, Scalar(255));
imwrite( outImage, gray_image );
,但当我运行第三个代码,我得到错误的文件扩展名是未知的,因此我写不能写图像。
这段代码有什么问题?
edit1
我更改了代码,看到代码或安装有问题。所以我现在有了这段代码
Mat x=imread("C:/tmp/a.jpg");
imshow("Image", x);
waitKey(0);
我确定c:/tmp/a.p g文件存在。
当我运行应用程序时,我得到这个错误:
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in unknown function, file C:slavebuildsWinInstallerMegaPacksrcopencvmodulescoresrcarray.cpp, line 2482
C:slavebuildsWinInstallerMegaPacksrcopencvmodulescoresrcarray.cpp:2482: error: (-206) Unrecognized or unsupported array type
我遵循这个答案,所以安装OpenCV到我的系统(我使用vc11,而不是vc10在安装期间)安装OpenCV 2.4.3在Visual c++ 2010 Express
编辑2
问题是我把调试库和发布库混在一起了,
对于release,请使用末尾没有d的发布库(例如opencv_calib3d243.lib)改为od opencv_calib3d243d.lib)
用于调试使用在末尾有d的调试库,例如opencv_calib3d243d.lib
确保您使用的库名称基于您拥有的opencv版本,例如opencv_calib3d245d。
确保您没有混淆OpenCV的发布和调试DLL。另外检查是否x86或x64 DLL的工作。有时x64 DLL在x64机器上确实会出错。不知道为什么,但我不得不切换到x86版本
试试这个:
void write(){
char * outImage="C:/tmp/000014/outimage.jpg";
Mat img = Mat(Size(imageWidth,imageHeight), CV_8UC1, Scalar(255));
imwrite(out, img);
}
请确定您的输出路径,imageWidth,imageHeight。此外,检查您的依赖项(在Linux下需要libjpeg8):
Linuxsudo apt-get install libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev libpngwriter0-dev libpngwriter0c2 zlib1g-dbg zlib1g zlib1g-dev pngtools libjasper-dev libjasper-runtime libjasper1 libjpeg8 libjpeg8-dbg libjpeg62 libjpeg62-dev libjpeg-progs libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools ffmpeg libavcodec-dev libavcodec52 libavformat52 libavformat-dev libswscale0 libswscale-dev openexr libopenexr6 libopenexr-dev
对于Windows,请遵循该指南:http://docs.opencv.org/doc/tutorials/introduction/windows_install/windows_install.html
相关文章:
- 无法从Java读取C++中保存的Opencv Mat映像
- CMake链接库在Docker映像中失败
- 在.NET Core 3.1中运行托管C++/CLI程序集时,映像格式错误
- 如何在C++中使用ZeroMQ通信多个映像
- 从 docker 映像构建中省略安装文件
- 使用 OpenGL 中的 imageStore 写入映像
- QML 映像不会在映像源中加载具有非 ASCII 字符的图像
- 构建最终应用程序时,如何将HD映像从HD打包到.EXE文件中
- 我正在尝试使用 Windows 映像组件加载 32 位图像,将其翻转,然后将其再次保存回同一文件中
- Vulkan 映像布局不会在管道屏障中过渡
- 在C++VS中创建和保存映像
- 使用 libtiff 在 C++ 中写入映像时出现问题,在 TIFFScanlineSize 中出现整数溢出
- 如何在Python中实现ITK映像和SimpleItk图像之间的转换
- 使用多线程在c++中生成mandelbrot映像.没有加速
- 无法在 OpenCV 中打开 1 位二进制映像
- C++中的软映像访问参数
- 将浮点像素数据从文件中读回 C#
- 将一个映像的区域复制到另一个映像中的另一个区域
- WinDbg 表示在映像列表中找不到".dll"
- 不能在openv中读/写映像