PythonでOpenCVを使って大きなサイズの画像を読み込もうとした場合に下記のようなエラーが発生します。
error: (-215:Assertion failed) pixels <= CV_IO_MAX_IMAGE_PIXELS in function 'cv::validateInputImageSize'
これは画像のピクセルサイズがOpenCV内で定義されている定数の値を超えてしまっているからです。
エラー内容
Traceback (most recent call last): File "image_read.py", line 8, inimg = cv2.imread("C:/work/test/image.png") cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-hfoi92lm\opencv\modules\imgcodecs\src\loadsave.cpp:77: error: (-215:Assertion failed) pixels <= CV_IO_MAX_IMAGE_PIXELS in function 'cv::validateInputImageSize'
解決方法
opencvをimportする前に環境変数を設定することで問題は解決します。
import os os.environ["OPENCV_IO_MAX_IMAGE_PIXELS"] = pow(2,40).__str__() import cv2
これで最大サイズが2^40になるので大きな画像を読み込むことができます。