我正在加載一個非常大的圖像(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'根據我的發(fā)現(xiàn),這是指對第65行施加的限制理想情況下,我會改變它以處理至少5千兆像素的圖像#define CV_IO_MAX_IMAGE_PIXELS (1<<33)我已經看到了一些解決方法(OpenCV圖像大小限制),但這些似乎并沒有解決任意定義的問題(我正在使用具有700gb RAM的高性能服務器,因此計算不是問題)。我的問題是我不知道這個文件在哪里。錯誤將我指向這個“travis”目錄,該目錄在本地不存在,并且在我的本地環(huán)境中,c ++文件不可用。在哪里可以找到c ++庫的任何想法?
3 回答

有只小跳蛙
TA貢獻1824條經驗 獲得超8個贊
您必須修改openCV源文件,然后自行編譯。
編輯:您還可以修改環(huán)境變量
export CV_IO_MAX_IMAGE_PIXELS=1099511627776

手掌心
TA貢獻1942條經驗 獲得超3個贊
對于我的問題,我應該指定它是一個.tif文件(注意大多數大圖像無論如何都會采用這種文件格式)。在這種情況下,將其加載到numpy數組中的一種非常簡單的方法(以便它可以與OpenCV一起使用)是使用軟件包tifffile。
pip install tifffile as tifi
這將在你的python環(huán)境中安裝它。
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
提交
取消