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

相关推荐
clint4561 小时前
C++进阶(1)——前景提要
c++
夜悊5 小时前
C++代码示例:进制数简单生成工具
c++
郝学胜_神的一滴6 小时前
CMake 021: IF 条件判据详诠
c++·cmake
_wyt00120 小时前
洛谷 B3930 [GESP202312 五级] 烹饪问题 题解
c++·gesp
玖玥拾1 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
梦想三三1 天前
OpenCV银行卡数字识别项目(图像预处理与字符分割)
人工智能·opencv·计算机视觉
один but you1 天前
constexpr函数
c++
凡人叶枫1 天前
Effective C++ 条款41:了解隐式接口和编译期多态
java·开发语言·c++·effective c++
凡人叶枫1 天前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
小胖xiaopangss1 天前
BRpc使用
c++·rpc