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

相关推荐
anew___4 小时前
蜂鸣器播放音乐——让 Arduino 唱出旋律
c++·stm32·单片机·嵌入式硬件·c
stolentime5 小时前
洛谷P10515 转圈题解
c++·算法·数学建模·贪心算法
tdtsmt6 小时前
穿戴硬件量产工艺实录:天地通电子智能手表主板 SMT 贴片案
c++
m0_7345717610 小时前
深入理解C++ 析构函数<一>基本概念
开发语言·c++
t-think11 小时前
C++ string 类(上)—— string类初识与常用接口详解
开发语言·c++
cpp_learners11 小时前
C++ 实现责任链模式(Chain of Responsibility):从一堆 if-else 到可插拔的处理管道
开发语言·c++·责任链模式
郝学胜_神的一滴11 小时前
C++11 工程级应用 12:编译期类型魔法,干掉重复与臃肿的代码
c++·visual studio
David猪大卫12 小时前
【C++修炼】哈希表的实现
数据结构·c++·笔记·学习·算法·哈希算法·散列表
广州山泉婚姻12 小时前
列表初始化:C++11全新初始化体系
c++·人工智能
leoZ23112 小时前
2026-09-10-静态扫描连错三次-用运行环境当裁判
前端·javascript·vue.js·人工智能·opencv·机器学习·数据挖掘