https://blog.csdn.net/newMiao001/article/details/88796557
解决方法:
添加cv2路径到系统环境中。
静态环境变量:
添加库所在路径到Path环境变量中。
动态加载:
修改cv2文件夹下的init.py文件。
init中的代码:
import sys
import os
import importlib
os.environ["PATH"] += os.pathsep + os.path.dirname(os.path.realpath(__file__))
from .cv2 import *
from .data import *
# wildcard import above does not import "private" variables like __version__
# this makes them available
globals().update(importlib.import_module('cv2.cv2').__dict__)
————————————————
版权声明:本文为CSDN博主「newMiao001」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/newMiao001/article/details/88796557
打开pycharm,将python interpreter配置成功后,输入以下代码发现
此时的imread函数的颜色与其他代码不同,其实是因为pycharm认为这里有错误,因为在cv2文件夹下的 init.py文件中没有imread函数,并且按住ctrl+左键也不会进入提示,这让开发人员非常痛苦,下面讲如何解决这个问题。
在opencv的安装路径中的pyd文件复制到site-package路径下
首先,找到opencv库的安装目录,其实我们知道,通过pip install 安装的module都会自动安装到python.exe安装目录下的site-packages路径下面,opencv模块的文件夹名称为cv2,我们也可以通过pip install opencv-python安装结束的提示找到opencv模块的安装路径,那么找到cv2文件夹以后,进入cv2文件夹中,发现有一个 cv2.cp37-win_amd64.pyd 文件,我们需要将这个文件修改名字为 cv2.pyd之后拷贝到site-packages路径下,为了防止错误,我们也可以将 cv2.cp37-win_amd64.pyd 复制一份到site-pachages路径下然后改名,这样再重新打开pycharm软件,就会发现有提示了,并且函数的使用方法也会有提示,可以说十分方便哦,
————————————————
分析原因
为什么将pyd文件复制到site-packages路径下后就能够代码提示了呢,再pycharm中ctrl+左键可以发现,原来site-packages添加cv2.pyd文件后,用户路径下的.Pycharmxxxx路径下面就会产生新的cv2模块的 init.py 文件,虽然这段代码中没有opencv的源代码,但是说明了opencv库函数的使用方法,对于我们开发人员来说也是非常方便了。
————————————————
版权声明:本文为CSDN博主「Tianxiadatong1001」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Tianxiadatong1001/article/details/87959884
用PIL处理图像时没有代码提示是不是很不爽?
from PIL import Image
img = Image.open('f15.png')
print(img.format)
print(img.mode)
print(img.size)
原因:
python是动态强类型语言,IDE无法判断Image.open("f15.png")的返回值类型,无法根据参数类型自动补全
解决:
类型注释:
加上# type: Image.Image就可以了
from PIL import Image
img = Image.open('f15.png')# type: Image.Image
print(img.format)
print(img.mode)
print(img.size)
om = img.convert('L')
om.save('hd.png')
使用isinstance指定:
assert isinstance(img, Image.Image)
from PIL import Image
img = Image.open('f15.png')
assert isinstance(img, Image.Image)
print(img.format)
print(img.mode)
print(img.size)
om = img.convert('L')
om.save('hd.png')
指定类型:
""":type: Image.Image"""
from PIL import Image
img = Image.open('f15.png')
""":type: Image.Image"""
# assert isinstance(img, Image.Image)
print(img.format)
print(img.mode)
print(img.size)
om = img.convert('L')
om.save('hd.png')
————————————————
版权声明:本文为CSDN博主「西奥斯」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/h18208975507/article/details/103239458