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

相关推荐
杜子不疼.7 小时前
【C++ AI 大模型接入 SDK】 - DeepSeek 模型接入(上)
开发语言·c++·chatgpt
石山代码8 小时前
C++ 内存分区 堆区
java·开发语言·c++
张小姐的猫11 小时前
【Linux】多线程 —— 线程互斥
linux·运维·服务器·c++
_李小白11 小时前
【android opencv学习笔记】Day 17: 目标追踪(MeanShift)
android·opencv·学习
做人求其滴13 小时前
面试经典 150 题 380 274
c++·算法·面试·职场和发展·力扣
见叶之秋13 小时前
C++基础入门指南
开发语言·c++
计算机安禾13 小时前
【c++面向对象编程】第42篇:模板特化与偏特化:为特定类型定制实现
开发语言·c++·算法
玖釉-13 小时前
C++ 中的循环语句详解:while、do...while、for、嵌套循环与循环控制
开发语言·c++·算法
欧米欧14 小时前
C++进阶数据结构之搜索二叉树
开发语言·数据结构·c++
青小莫14 小时前
C++之vector讲解
c++·stl