pycharm中opencv没有自动补全

原文地址:https://blog.csdn.net/Tianxiadatong1001/article/details/87959884


pycharm是一款很好用的python编辑器,对于python提供的方法和模块都会有提示,但是当我安装使用opencv库的时候,发现没有提示功能,导致写opencv的代码好慢啊,因此我在百度上搜索各种解决办法,但是很多方法都不好用,终于我最后找到了下面的方法,分享给大家。

opencv库的安装

在python上安装opencv十分简单,只需要在命令行中输入pip install opencv-python即可,如图
opencv库的安装
我这里opencv库是已经安装完成的,所以没有显示安装的进度条,不过有时候安装会很慢,需要手动下载好再安装,可以再这个路径下面找到合适的安装包https://pypi.org/project/opencv-python/#files,推荐安装最新版本4.0.0版本,下载完成后再离线安装。

在pycharm中无法使用代码提示功能

安装完成opencv后,通过命令行输入import cv2发现运行没有错误,说明opencv库已经安装成功。
https://img-blog.csdnimg.cn/20190227001442549.png
此时说明安装成功

但是这时候打开pycharm,将python interpreter配置成功后,输入以下代码发现
https://img-blog.csdnimg.cn/201902270017029.png
此时的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路径下以防止出错做备份用,这样再重新打开pycharm软件,就会发现有提示了,并且函数的使用方法也会有提示,可以说十分方便哦,下面是我在pycharm可以提示后写的一段小的测试代码

import cv2

face_file = “./haarcascade_frontalface_default.xml”

if name == main:
image = cv2.imread("./obama.jpg")
cv2.imshow(“image”, image)
gray_image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
classifier = cv2.CascadeClassifier(face_file)
faces = classifier.detectMultiScale(
gray_image,
scaleFactor=1.15,
minNeighbors=5,
minSize=(5, 5),
flags=cv2.CASCADE_SCALE_IMAGE
)
for x, y, w, h in faces:
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)

cv2<span class="token punctuation">.</span>imshow<span class="token punctuation">(</span><span class="token string">"face"</span><span class="token punctuation">,</span> image<span class="token punctuation">)</span>
cv2<span class="token punctuation">.</span>waitKey<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

这段代码是从一副图像中选取出人物的头像,其中 haarcascade_frontalface_default.xml 是我从cv2/data路径下复制到我程序的目录下的,obama.jpg是我从网上下载的一张照片,大家也可以从网上随便找一个人的头像来试一下,程序运行的结果如下
在这里插入图片描述
上面是原始图像
在这里插入图片描述
上面是选取出人头像后的图像

分析原因

为什么将pyd文件复制到site-packages路径下后就能够代码提示了呢,再pycharm中ctrl+左键可以发现,原来site-packages添加cv2.pyd文件后,用户路径下的.Pycharmxxxx路径下面就会产生新的cv2模块的 init.py 文件,虽然这段代码中没有opencv的源代码,但是说明了opencv库函数的使用方法,对于我们开发人员来说也是非常方便了。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值