解决办法:
- 修改opencv的源码文件
opencv-4.5.1\modules\imgcodecs\src\grfmt_png.cpp,在147行下面设置libpng中指针变量的属性值,将png_set_chunk_malloc_max设置为无限制,添加以下代码:png_set_chunk_malloc_max(png_ptr, 0) - 保存后,重新编译opencv库替换即可;
- 注意事项:编译时,需开启编译参数
OPENCV_FORCE_3RDPARTY_BUILD=ON
cmake -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=./install \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_INSTALL_LIBDIR=lib64 \
-DOPENCV_FORCE_3RDPARTY_BUILD=ON \
-DBUILD_DOCS=OFF \
-DBUILD_EXAMPLES=OFF \
-DWITH_IPP=OFF \
-DBUILD_TESTS=OFF ..
通过修改OpenCV源码imgcodecs模块中的grfmt_png.cpp文件,将png_set_chunk_malloc_max设置为无限制,可以避免处理大PNG图片时的内存问题。在编译时需开启OPENCV_FORCE_3RDPARTY_BUILD选项,关闭不必要的构建项目如文档、例子、测试等。
5724

被折叠的 条评论
为什么被折叠?



