【发布时间】:2017-10-10 06:20:03
【问题描述】:
我试图使用 OpenCV imwrite 函数将图像写入文件夹。 代码编译并成功运行,但图像未保存在文件夹/路径中。我正在从“imshow”获取输出,我的图像为 CV_8UC1 格式。
找到下面的代码
Mat reflection = function which computes image
imshow("output image", reflection);
imwrite("E:/New folder/img.bmp", reflection);
所以我检查了current folder writing 并修改了这样的代码
bool check = imwrite("./img.bmp", reflection);
这个 'bool check' 状态是 'false' 并且没有写入图像。
我还根据microsoft help 的指南检查了文件夹权限,我的“E/New Folder/”被允许写入。仍然,图像没有保存。 我可以接受任何图像格式 .jpg、.png 和 .bmp。 我正在使用 Windows 7、OpenCV 3.0、Visual Studio 2017。
请帮助我并感谢您阅读它
【问题讨论】:
-
你试过没有路径吗?保存到当前工作目录或其他东西......比如 imwrite("img.bmp", reflection); ?
-
您是否尝试将图像转换为 CV_8UC3?我怀疑1通道图像可以存储在bmp文件中。
-
如果你选择
imwrite("E:/New folder/img.png", reflection);,它会起作用吗? -
是否所有必要的 dll 都可用于应用程序?例如,对于 videowriter,如果缺少 opencv_ffmpeg dll,则不会写入任何帧,但程序确实运行(并且没有抱怨缺少 dll 或其他东西)。也许 imwrite 也有一些类似的依赖关系。
-
@Micka imwrite 必须有链接器的 -highugi 标志,但如果它不可用会抛出链接器错误