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

相关推荐
殳翰2 分钟前
下服务器端开发流程及相关工具介绍(C++)
开发语言·c++
青瓦梦滋1 小时前
协议定制/序列化-反序列化(Linux视角)
linux·服务器·网络·c++
山登绝顶我为峰 3(^v^)34 小时前
C/C++ 交叉编译方法
java·c语言·c++
韭菜钟5 小时前
利用OpenCV进行3d相机手眼标定(眼在手上/眼在手外)
opencv·3d
郝学胜-神的一滴8 小时前
中级OpenGL教程 013:渲染器类架构设计与逐帧渲染流程详解
开发语言·c++·unity·游戏引擎·图形渲染·opengl·unreal
小小龙学IT10 小时前
C++ 并发编程深度解析:从内存模型到无锁数据结构
数据结构·c++
凯瑟琳.奥古斯特10 小时前
力扣1013三等分解法与C++实现
开发语言·c++·算法·leetcode·职场和发展
一拳一个呆瓜10 小时前
【STL】iostream 编程:缓冲区的作用
c++·stl
我不是懒洋洋11 小时前
从零实现一个分布式任务调度器:XXL-JOB的核心设计
c++