为了账号安全,请及时绑定邮箱和手机立即绑定

删除开放 CV 图像大小限制

删除开放 CV 图像大小限制

翻翻过去那场雪 2022-09-20 17:38:11
我正在加载一个非常大的图像(60,000 x 80,000像素),并且超出了我可以加载的最大像素:cv2.error: OpenCV(4.2.0) /Users/travis/build/skvark/opencv-python/opencv/modules/imgcodecs/src/loadsave.cpp:75:      error: (-215:Assertion failed) pixels <= CV_IO_MAX_IMAGE_PIXELS in function 'validateInputImageSize'根据我的发现,这是指对第65行施加的限制理想情况下,我会改变它以处理至少5千兆像素的图像#define CV_IO_MAX_IMAGE_PIXELS (1<<33)我已经看到了一些解决方法(OpenCV图像大小限制),但这些似乎并没有解决任意定义的问题(我正在使用具有700gb RAM的高性能服务器,因此计算不是问题)。我的问题是我不知道这个文件在哪里。错误将我指向这个“travis”目录,该目录在本地不存在,并且在我的本地环境中,c ++文件不可用。在哪里可以找到c ++库的任何想法?
查看完整描述

3 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

您必须修改openCV源文件,然后自行编译。

编辑:您还可以修改环境变量

export CV_IO_MAX_IMAGE_PIXELS=1099511627776


查看完整回答
反对 回复 2022-09-20
?
手掌心

TA贡献1942条经验 获得超3个赞

对于我的问题,我应该指定它是一个.tif文件(注意大多数大图像无论如何都会采用这种文件格式)。在这种情况下,将其加载到numpy数组中的一种非常简单的方法(以便它可以与OpenCV一起使用)是使用软件包tifffile。

pip install tifffile as tifi

这将在你的python环境中安装它。

import tifffile as tifi
img = tifi.imread("VeryLargeFile.tif")

从这里你可以像使用任何numpy阵列一样使用它,它与OpenCV等完全兼容。


查看完整回答
反对 回复 2022-09-20
?
跃然一笑

TA贡献1826条经验 获得超6个赞

将以下内容添加到您的程序中应该可以解决python opencv中的问题。


import os

os.environ["OPENCV_IO_MAX_IMAGE_PIXELS"] = str(pow(2,40))

import cv2


查看完整回答
反对 回复 2022-09-20
  • 3 回答
  • 0 关注
  • 242 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信