cv2.imshow超高分辨率图片报错

问题遇到的现象和发生背景

imshow超高分辨率图片报错

用代码块功能插入代码,请勿粘贴截图
REAL_img_array = np.array(img)
cv2.namedWindow('collect coordinate',cv2.WINDOW_NORMAL)
# cv2.resizeWindow('collect coordinate', 800, 600)
cv2.imshow('collect coordinate', REAL_img_array)
cv2.waitKey(0)

运行结果及报错内容

图片分辨率为35856 22901
报错

Traceback (most recent call last):
  File "F:\pytorch-CycleGAN-and-pix2pix-master\try.py", line 32, in 
    cv2.imshow('collect coordinate', REAL_img_array)
cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\core\src\matrix.cpp:424: error: (-215:Assertion failed) total() == 0 || data != NULL in function 'cv::Mat::Mat'

我的解答思路和尝试过的方法

低分辨率正常,高分辨率不行

opencv加载图像有限制,可以保存后再查看。看了网上的解决办法,大概有两个办法:一是修改opencv的限制;二是用PIL或者skimage模块来读取保存。
https://zhuanlan.zhihu.com/p/158550291
https://blog.csdn.net/u010410697/article/details/107799766

把高分辨率图像resize大小后在查看
也可以保持宽高比的缩放后再查看

width = image.shape[1]
height = image.shape[0]
# 缩放原图像为800*600
cv2.imshow("resize: 800,600", cv2.resize(image, (800,600)), interpolation=cv2.INTER_AREA))
# 保持宽高比的缩放为原图像的1/4
cv2.imshow("keep ratio 1/4", cv2.resize(image, (int(width / 4), int(height / 4)), interpolation=cv2.INTER_AREA))
cv2.waitKey(0)