2017-10-10 360 views
0

我正在尝试使用OpenCV imwrite函数将图像写入文件夹。 代码编译并运行成功,但图像未保存在文件夹/路径中。我从'imshow'获取输出,并且图像处于CV_8UC1格式。OpenCV imwrite不写图像

在下面找到

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); 

这个“布尔检查”状态为“假”,而不是写的图像。

我也检查了文件夹权限与从microsoft help准则我的“E /新文件夹/”被允许写入。仍然,图像不存储。 我可以使用任何图像格式.jpg,.png和.bmp。 我使用Windows 7,OpenCV的3.0,Visual Studio的2017年

请帮助我,感谢阅读它

+0

您是否尝试过不带路径?保存到当前工作目录或类似... imwrite(“img.bmp”,反射); ? –

+0

您是否尝试将图像转换为CV_8UC3?我怀疑1通道图像可以存储在bmp文件中。 –

+0

如果你选择'imwrite(“E:/ New folder/img.png”,reflection),它会起作用吗? – Micka

回答

1

opencv的似乎不支持保存BMP文件检查imwrite docs。更改文件名为img.png应该可以工作。在windows中也使用./是无效的,这是在unix系统中用来表示当前工作目录的,参见Windows current directory。 它更新到

bool check = imwrite(".\img.png", reflection); 

bool check = imwrite("img.png", reflection); 

应工作

+0

我试过它仍然不保存图像布尔检查值为false –

+0

看来opencv不能保存BMP文件,将文件更改为“img.png” [文档](https://docs.opencv.org/3.0-alpha /modules/imgcodecs/doc/reading_and_writing_images.html) –