所以扩展一下,我一直未能将图像写入文件,并且我在文档中读到我需要使用正确的标志进行 cmake,但是没有提及我需要使用哪个标志以及要使用什么使其相等。
OpenCV Error: Unspecified error (could not find a writer for the specified extension) in imwrite_, file /home/User/Desktop/opencv/modules/imgcodecs/src/loadsave.cpp, line 45
现在我一直在运行的是
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=/home/User/Desktop/opencv_contrib/modules WITH_PNG WITH_JPEG CMAKE_INSTALL_PREFIX=/usr/local ..
使用额外的 WITH_PNG 和 WITH_JPEG 标志可以正常编译,但我在运行我的代码时遇到同样的问题,所以我认为这些是错误的。
在构建过程中,这是我收到的输出
.
.
.
Media I/O:
-- ZLib: /usr/lib/x86_64-linux-gnu/libz.so (ver 1.2.8)
-- JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (ver )
-- WEBP: build (ver 0.3.1)
-- PNG: /usr/lib/x86_64-linux-gnu/libpng.so (ver 1.2.50)
-- TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (ver 42 - 4.0.3)
-- JPEG 2000: /usr/lib/x86_64-linux-gnu/libjasper.so (ver 1.900.1)
-- OpenEXR: build (ver 1.7.1)
-- GDAL: NO
.
.
.
所以据我了解,错误表明它看错了地方?但我没有丝毫线索。
为了澄清我可以读取图像我只是不能将 Mats 保存到文件中,我尝试将其转换为 CV_16UC1 和 CV_8UC1 但仍然有同样的问题,程序退出并出现 openCV 错误。
我试过 jpg jpeg bmp,似乎都行不通。
我正在运行 linux mint rosa 和刚从 git 下载的 opencv 3.1。
最佳答案
我认为问题不在于 OpenCV 构建(我 100% 确定它能够在没有第 3 方组件的情况下保存图像),而可能是创建/写入文件的权限或目标路径有问题。确保路径存在。
关于c++ - 如何用imcodecs编译opencv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37065562/