ImportError: DLL load failed while importing cv2: 找不到指定的程序及Insufficient memoryFailed to allocate 1065911700 bytes in function 'cv::OutOfMemoryError'解决方法
记一次超坑的python升级及安装opencv记录,也希望能够帮助遇到同样问题的人避坑
总结:
原版本:python:3.8.1 32位, opencv:4.4.0(可正常使用但不满足需求)
尝试版本:python:3.9.0 64位, opencv:4.5.1.48及4.4.0(无法解决问题)
最终版本:python:3.8.2 64位,opencv:4.4.0.46(未遇到问题,成功满足需求)
1.升级原因:
原python版本为3.8.1的32位版本,安装了4.4.0的opencv。因为需要使用opencv读取多张10亿像素的tif图,导致超出opencv限制开辟内存大小,提升错误:error: (-4:Insufficient memory) Failed to allocate 1065911700 bytes in function ‘cv::OutOfMemoryError’。网上查找原因得知是32位的限制问题,所有需要升级到64位python版本并重装opencv。
2.升级过程:
直接选择了较新的3.9.0的64位版本python,python正常安装后,在PyCharm里安装opencv,也默认选择了最新的4.5.1.48版本,于是开始出现了如题的报错。后来也尝试像之前的32位版本一样从 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 这个网站去下载4.4.0的离线包,但是还是遇到同样问题,于是开始在网上搜索解决方法并尝试了各种方法,但都以失败告终。
想起了自己原版本可以正常使用于是决定降低python版本,安装了3.8.2的64位版本python,然后直接从PyCharm里面安装opencv,保险起见选择了4.4.0.46版本的opencv,安装完成后未遇到任何问题测试成功,并可以正常读取高分辨率tif图。
3.测试结果:
可以正常读取较大图片