我正在加载一个非常大的图像(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
手掌心
TA贡献1942条经验 获得超3个赞
对于我的问题,我应该指定它是一个.tif文件(注意大多数大图像无论如何都会采用这种文件格式)。在这种情况下,将其加载到numpy数组中的一种非常简单的方法(以便它可以与OpenCV一起使用)是使用软件包tifffile。
pip install tifffile as tifi
这将在你的python环境中安装它。
import tifffile as tifi img = tifi.imread("VeryLargeFile.tif")
从这里你可以像使用任何numpy阵列一样使用它,它与OpenCV等完全兼容。
跃然一笑
TA贡献1826条经验 获得超6个赞
将以下内容添加到您的程序中应该可以解决python opencv中的问题。
import os
os.environ["OPENCV_IO_MAX_IMAGE_PIXELS"] = str(pow(2,40))
import cv2
添加回答
举报
0/150
提交
取消