OpenCV无法使用imwrite写入图像
OpenCV unable to write Images using imwrite
我试图写一个Mat格式,我已经创建了一个jpeg文件,但所有我得到的是一个未处理的异常。文档中说
只有8位(或16位无符号(CV_16U)在PNG, JPEG 2000和TIFF的情况下)单通道或3通道(与' BGR '通道顺序)图像可以使用此功能保存。
所以我用下面的代码创建了一个垫子:
Mat watermark(5,5,CV_16U);
imwrite("C:\watermark.jpg",watermark);
但是,我无法将图像写入jpeg。它可以很好地处理BMP格式,但不能处理JPG或任何其他格式。我被建议将其转换为CV_16U或8U,但它不起作用,我确实有写权限到C:目录。
我错过了一个步骤吗?或者我应该使用OpenCV将图像保存为JPG格式吗?
如果您使用的是最新的opencv (v3.0)或更高版本和windows x64位版本的opencv的一些功能在调试模式下不能正常工作…你必须在发布模式下运行你的代码,然后一切都会完美运行。
我在opencv3.1和x64位-调试模式下发现的问题
- imwrite(filename, image) get exception (read access violation).
- haarCascade.detectMultiScale(…)检测大量的对象。
要解决这些问题,运行应用程序在发布模式
在调试模式下仍在寻找解决这些问题的好方法
这段代码可以正常工作并生成/重写"watermark.jpg":
#include <opencv2corecore.hpp>
#include <opencv2highguihighgui.hpp>
using namespace cv;
int main() {
Mat watermark(5,5,CV_16U);
imwrite("C:\watermark.jpg",watermark);
return 0;
}
我有Win7, Wascana Eclipse(MinGW GCC编译器),Opencv 2.4.5
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 为什么 BMP 图像上的 imwrite 会卡住/不返回?
- 如何使用imwrite OpenCV 3.1将图像写入目录?
- OpenCV imwrite不会保存图像
- OpenCV imwrite 不写入图像
- 无法使用cv :: imwrite保存垫子图像在JNI本机代码OPENCV中
- 在opencv中使用imwrite保存图像时,会将图像全部写入黑色,但imshow会正确显示
- 如何使用imwrite使用日期和时间命名图像
- opencv中的imwrite提供了一个黑/白图像
- 无法在OpenCV中使用imwrite写入图像
- 无法使用 cv::imwrite 将图像写入 JNI 中的 Android 文件系统
- Imwrite不创建图像
- 在openv上压缩图像(imwrite).如何显式设置压缩因子
- 无法保存从网络摄像头捕获的图像(OpenCV 2.3 的 imwrite 编译错误)
- 无法对使用imshow可以看到的图像执行imwrite操作
- OpenCV无法使用imwrite写入图像
- OpenCV imwrite()不保存图像
- 无法在OpenCV中使用imwrite写入灰度图像