运用pycharm编写opencv-python程序

运用pycharm编写opencv-python程序

      • 系统:Windows10,mac的用户可以作相应的调整
  • 一.环境配置
    • 1.安装python3.76
      • 参考方法
    • 2.安装pycharm
      • 官网安装即可,有相应的windows和mac版本
    • 3.pycharm中新建工程并配置python编译器(interpreter)
      • Step1: 进入pycharm主界面之后,点击new project 新建工程
      • Step2: 进行工程设置
      • step3 在工程里设置编译器,并根据需要添加package
      • Step4: 新建python文件
  • 二.遇到的一些问题和解决方法
    • 1.语法相关
    • 2.常见函数
      • cv2.findContours()

系统:Windows10,mac的用户可以作相应的调整

一.环境配置

1.安装python3.76

参考方法

备注:关于配置环境变量的更详细信息,可依据这篇博文
检验:添加路径成功后,点击path之后,应该如下图所示
运用pycharm编写opencv-python程序_第1张图片

2.安装pycharm

官网安装即可,有相应的windows和mac版本

3.pycharm中新建工程并配置python编译器(interpreter)

Step1: 进入pycharm主界面之后,点击new project 新建工程

运用pycharm编写opencv-python程序_第2张图片

Step2: 进行工程设置

运用pycharm编写opencv-python程序_第3张图片
如图所示,一共有四个方框。
方框1:工程位置,可自己选择
方框2:环境位置,建议在工程位置之下新建一个子文件夹vene作为环境位置
方框3:编译器,选择python的安装地址
方框4:无需选择
配置完成后,点击create,生成的界面如图所示

运用pycharm编写opencv-python程序_第4张图片vene里是自动生成的相关环境文件

step3 在工程里设置编译器,并根据需要添加package

在pycharm界面里,点击 File-Settings-Project-PythonInterpreter
运用pycharm编写opencv-python程序_第5张图片
运用pycharm编写opencv-python程序_第6张图片
Python Interpreter应该选择python的安装地址,和Step2的第三个方框相同。
根据需要添加Package文件,如此处的opencv-python。笔者已经安装过,若是第一次安装,应该点击左下角“+”键(如上图),在搜索框中搜索"opencv python",选择最新版本之后,点击"install package"(如下图)。
运用pycharm编写opencv-python程序_第7张图片

Step4: 新建python文件

返回到主界面,右击当前工程文件-New-Python File
运用pycharm编写opencv-python程序_第8张图片
运用pycharm编写opencv-python程序_第9张图片
输入新建的Python File 的名称,回车之后生成.py文件。

运用pycharm编写opencv-python程序_第10张图片
在空的main.py文件中输入import cv2,引入头文件。
运用pycharm编写opencv-python程序_第11张图片

二.遇到的一些问题和解决方法

1.语法相关

1.报错:unindent,但实际上并无缩进的错误
解决: 用tab替换空格

2.常见函数

cv2.findContours()

1.传入的必须是二值化的图像,并且在其中的白色区域找寻边缘。
注:只有这个函数是用的二值化图像,其他的drawrectangular等,都要求是三通道BGR图像,就是未经处理的原图即可,通常为了不影响原始图像,会编写imgContour=img.copy
二值化的方法有
*Method1:*函数 cv2.threshold

img = cv2.imread(r"D:\360MoveData\Users\KID\Desktop\1.jpg", cv2.IMREAD_UNCHANGED)
ret, thresh = cv2.threshold(
    cv2.cvtColor(img.copy(), cv2.COLOR_BGR2GRAY),  # 转换为灰度图像,
    130, 255,   # 大于130的改为255  否则改为0
    cv2.THRESH_BINARY)  # 黑白二值化

以上参考Python:Opencv cv2.findContours()函数 查找轮廓

Method2: 函数 imgCanny

img = cv2.imread("Resources/shape.jpg")
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgBlur=cv2.GaussianBlur(imgGray,(7,7),1)
imgCanny=cv2.Canny(imgBlur,50,50)
#imgCanny得到的就是二值化的图像

*Method3:*设置遮罩,只有mask范围内为白色
mask = cv2.inRange(hsv, orangeLower, orangeUpper)
mask = cv2.erode(mask, None, iterations=2)
mask = cv2.dilate(mask, None, iterations=2)

==注:特殊情况下:图片中白色的区域就是想要寻找contour的区域,此时颜色的最低和最高的阈值分别是(0,0,0)和(255,255,255),但这样在实际运行中会无法找到边缘点,所以需要适当改下范围。

2.如何由cv2.findContours()这个函数得到实际的轮廓
Method1: 直接写出改函数返回的两个图像

contours,hierarchy=cv2.findContours(img,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)   ##cv2.findContours()在opencv-python4中返回的是两个值
for cnt in contours:   ##用于找多个轮廓

Method2: 再通过imutils.grab_contours()函数

cnts = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL,
							cv2.CHAIN_APPROX_SIMPLE)
cnts = imutils.grab_contours(cnts)

你可能感兴趣的:(python,pycharm)