我正在使用OpenCV和Visual Studio 2010来阅读和显示一些图像(包括jpg和png)。我的程序工作正常,但有时它失败并出现以下警告:
libpng warning: interlace handling should be turned on when using png_read_image.
OpenCV Error: Insufficient memory (failed to allocate 1398604 bytes) in unknown function, file ..\..\..\src\opencv\modules\core\src\alloc.cpp, line 52
我尝试在互联网上搜索修复但无法获得任何修复。对此问题的任何帮助将不胜感激。
由于
答案 0 :(得分:1)
把
number_passes = png_set_interlace_handling(png_ptr);
在调用应用程序的适当位置,
之后png_get_IHDR();
如果您不想重建调用应用程序, 解决方法是使用ImageMagick的“转换”等应用程序 在尝试使用您的应用程序阅读PNG之前对其进行解交错:
convert in.png -interlace none out.png