opencv c++ 修改加载图像大小限制

源码修改

文件:E:\software\opencv\openCV411\sources\modules\imgcodecs\src\loadsave.cpp

cpp 复制代码
static const size_t CV_IO_MAX_IMAGE_PARAMS = cv::utils::getConfigurationParameterSizeT("OPENCV_IO_MAX_IMAGE_PARAMS", 50);
static const size_t CV_IO_MAX_IMAGE_WIDTH = utils::getConfigurationParameterSizeT("OPENCV_IO_MAX_IMAGE_WIDTH", 1 << 20);
static const size_t CV_IO_MAX_IMAGE_HEIGHT = utils::getConfigurationParameterSizeT("OPENCV_IO_MAX_IMAGE_HEIGHT", 1 << 20);
static const size_t CV_IO_MAX_IMAGE_PIXELS = utils::getConfigurationParameterSizeT("OPENCV_IO_MAX_IMAGE_PIXELS", 1 << 30);//修改为下面
static const size_t CV_IO_MAX_IMAGE_PIXELS = utils::getConfigurationParameterSizeT("OPENCV_IO_MAX_IMAGE_PIXELS", size_t(1) << 31);

E:\software\opencv\openCV411\sources\modules\imgcodecs\src\grfmt_tiff.cpp

cpp 复制代码
const uint64_t MAX_TILE_SIZE = (CV_BIG_UINT(1) << 30);//
const uint64_t MAX_TILE_SIZE = (CV_BIG_UINT(6) << 30);// 修改为6GB (6 * 1024 * 1024 * 1024 bytes)

E:\software\opencv\openCV411\sources\modules\imgcodecs\src\grfmt_bmp.cpp

cpp 复制代码
  // FIXIT: use safe pointer arithmetic (avoid 'int'), use size_t, intptr_t, etc
    CV_Assert(((uint64)m_height * m_width * nch < (CV_BIG_UINT(1) << 30)) && "BMP reader implementation doesn't support large images >= 1Gb");

//修改为
  // FIXIT: use safe pointer arithmetic (avoid 'int'), use size_t, intptr_t, etc
    CV_Assert(((uint64)m_height * m_width * nch < (CV_BIG_UINT(6) << 30)) && "BMP reader implementation doesn't support large images >= 6Gb");

编译

opencv源码

参考 OpenCV_contrib配置教程(详细版)

在官网下载opencv411源码,和cmake gui

其中 E:\software\opencv\openCV411\sources是源码,要编译的

E:\software\opencv\openCV411\build build文件夹是自己新建的,存放编译输出内容

如下图所示:点击configure,出现图片中最下面几行,白色,没有红色的error就是成功

opencv_contrib

非必要操作,用不到opencv_contrib的可以不下载

下载opencv_contrib源码放到:E:\software\opencv\opencv_contrib-4.11.0

勾选 build_opencv_world

勾选 opencv_extra_modiles

opencv_extra_modiles_path填入下载扩展库的modules路径

再次点击 configure没有报错之后,点击generate

会在E:\software\opencv\openCV411\build 生成很多vs文件

打开OpenCV.sln,点击生成->batch生成,按照下面步骤生成

需要等很久

vs2019项目配置

包含目录:

E:\software\opencv\openCV411\build\include

E:\software\opencv\openCV411\build\include\opencv2

E:\software\opencv\openCV411\build\install\include\opencv2\

库目录:

E:\software\opencv\openCV411\build\x64\vc16\lib

链接器输入:opencv_world4110d.lib(debug)

opencv_contrib安装

环境变量 E:\software\opencv\openCV411\build\install\x64\vc16\bin

opencv_shape4110.lib

相关推荐
计算机安禾1 分钟前
【数据结构与算法】第36篇:排序大总结:稳定性、时间复杂度与适用场景
c语言·数据结构·c++·算法·链表·线性回归·visual studio
unicrom_深圳市由你创科技5 分钟前
做虚拟示波器这种实时波形显示的上位机,用什么语言?
c++·python·c#
无限进步_11 分钟前
【C++】电话号码的字母组合:从有限处理到通用解法
开发语言·c++·ide·windows·git·github·visual studio
C++ 老炮儿的技术栈40 分钟前
GCC编译时无法向/tmp 目录写入临时汇编文件,因为设备空间不足,解决
linux·运维·开发语言·汇编·c++·git·qt
橘颂TA1 小时前
【笔试】算法的暴力美学——牛客 NC213140 :除2!
c++·算法·结构与算法
minglie11 小时前
zynq环境用opencv测摄像头
人工智能·opencv·计算机视觉
wsoz1 小时前
Leetcode普通数组-day5、6
c++·算法·leetcode·数组
favour_you___1 小时前
2026_4_8算法练习题
数据结构·c++·算法
Fleshy数模2 小时前
基于MediaPipe实现人体姿态与脸部关键点检测
python·opencv·计算机视觉
SccTsAxR2 小时前
算法基石:手撕离散化、递归与分治
c++·经验分享·笔记·算法