c++ - 如何用imcodecs编译opencv?

标签 c++ opencv png jpeg

所以扩展一下,我一直未能将图像写入文件,并且我在文档中读到我需要使用正确的标志进行 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,似乎都行不通。

我正在运行 linux mint rosa 和刚从 git 下载的 opencv 3.1。

最佳答案

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

关于c++ - 如何用imcodecs编译opencv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37065562/

相关文章:

c++ - 如何在 C++ 项目中编写着色器源代码?

c++ - ISAPI 和 Visual C++ 2010

c++ - std::endl 在每个平台上究竟代表什么?

使用 ImageGrab 的 Python 屏幕记录

svg - 显示完整的 SVG,缩放不变

c++ - 案例 'p' 的问题 || 'P' : syntax within a switch statement in C++

opencv - cv2.split() 不适用于超过 512 个 channel

c++ - OpenCV中图像被乘以3倍,是什么原因造成的?

c++ - 为什么我的 libharu pdf 与 .png 图像过大?

objective-c - 如何在 C 中使用隐写术在 PNG 中隐藏 4 个字母数字字符?