如何用imcodecs编译opencv?

How to compile opencv with imcodecs?

所以为了扩展,我一直无法将图像写入文件,并且我已经在文档中读到我需要使用正确的标志进行 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_PNGWITH_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,none 似乎可行。

我是 运行 linux mint rosa,刚从 git 下载了 opencv 3.1。

我认为问题不在于 OpenCV 构建(我 100% 确定它能够在没有第 3 方组件的情况下保存图像),但可能是对 create/write 文件的权限或目标路径有问题。确保路径存在。

所以这是编译器无法识别的拼写错误,很可能是因为我在将路径传递给 imwrite 之前将字符串连接在一起。

定义路径的时候不小心用到了

const String folderName="PATH"

我的意思是

const string folderName="PATH"

注意stringString

的区别