# LQ-Challenge2-PyCV **Repository Path**: codygua/lq-challenge2-py-cv ## Basic Information - **Project Name**: LQ-Challenge2-PyCV - **Description**: Python写的OpenCV电赛无人机第二次积分赛题 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 8 - **Created**: 2022-05-03 - **Last Updated**: 2024-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 第二次积分赛(简化) ## 任务详情 电脑上运行OpenCV代码,让程序识别白纸上的三种形状`🔴``🟥``🔺`和三种不同颜色共9种组合 将识别结果通过`串口`传输给单片机,单片机执行相关处理执行一些反应(比如亮不同的灯 ## 需要了解的知识 [前置知识](https://gitee.com/codygua/little-quadcopter/wikis/Pre-knowledge) [CV文档(没建好)]() [如何搭建单片机编译环境(MDK)(没建好)]() [关于Python、anaconda、pycharm、opencv的概念](https://cloud.lwqwq.com/s/vdoUQ/video?name=%E5%AD%A6%E9%95%BF%E8%AE%B2python%EF%BC%8Cpycharm%EF%BC%8Copencv%E6%A6%82%E5%BF%B5%E8%AE%B2%E8%A7%A3_x264.mp4&share_path=%2F%E8%A7%86%E9%A2%91%E8%B5%84%E6%BA%90%2F%E5%AD%A6%E9%95%BF%E8%AE%B2python%EF%BC%8Cpycharm%EF%BC%8Copencv%E6%A6%82%E5%BF%B5%E8%AE%B2%E8%A7%A3_x264.mp4) [如何搭建Python-OpenCV环境](https://cloud.lwqwq.com/s/vdoUQ/video?name=opencv%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95_x264.mp4&share_path=%2F%E8%A7%86%E9%A2%91%E8%B5%84%E6%BA%90%2Fopencv%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95_x264.mp4) ## Windows下的配置 ### 0. 安装python,并正确配置和安装环境
conda配置方法 --- #### 1. 安装和配置conda 1. 首先安装Python和Anaconda,参照上面的视频[如何搭建Python-OpenCV环境](https://cloud.lwqwq.com/s/vdoUQ/video?name=opencv%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95_x264.mp4&share_path=%2F%E8%A7%86%E9%A2%91%E8%B5%84%E6%BA%90%2Fopencv%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95_x264.mp4) 2. 配置conda环境变量,按照你conda安装的位置来,比如你安装在`D:\anaconda3\`则需要添加的path有下面四条 ```commandline D:\anaconda3\ D:\anaconda3\Scripts D:\anaconda3\Library\bin D:\anaconda3\Library\mingw-w64 ``` 3. 然后需要开启Powershell运行PS脚本的限制 **右键**`开始菜单按钮`,点击`Windows PowerShell(管理员)(A)`,然后输入 ```commandline set-executionpolicy remotesigned ``` 会出现下面的信息 ```commandline 执行策略更改 执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略? [Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): ``` 然后输入大写的`Y`,敲击回车 继续输入 ```commandline Get-ExecutionPolicy ``` 如果显示的是 `RemoteSigned`说明设置成功了 4. 接下来需要初始化conda环境,在powershell中继续输入 ```commandline conda init powershell ``` 然后关闭powershell 到这边你已经完成了conda环境的初始化 #### 2. 配置conda环境 首先创建一个conda环境,`<你的conda环境名称>`可以自定义,我这边是`opencv`,后面的python版本我选择的是3.10,conda会自动搜索3.10最新版本,所有代码都在3.10.4的环境下测试通过 ```commandline conda create -n <你的conda环境名称> python=3.10 ``` #### 如果遇到conda下载速度慢,请查看这里 两种方法 1.如果你有代理服务器,在终端中输入 ```commandline $Env:http_proxy="http://127.0.0.1:7890";$Env:https_proxy="http://127.0.0.1:7890" #改成你自己的端口号 ``` 2.如果你没有代理服务器,可以使用conda镜像 同时按下`windows徽标键`+`R`,在左下角弹出界面输入框内输入`powershell` 在powershell中输入`conda config --set show_channel_urls yes` 同时按下`windows徽标键`+`R` 在左下角弹出的窗口内输入`notepad %HOMEPATH%\.condarc`然后点击确定 在弹出的记事本中所有的文字删除,并以下面的文字替代 ``` channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud ``` 然后按`Ctrl`+`S`保存修改 安装环境的时候可能会提示是否安装,按照提示输入y就可以了 接下来进入`opencv`环境 ```commandline conda activate <你的conda环境名称> ``` 这个时候你的终端最左侧应该会从`(base)`变成`(opencv)`或者`<你的conda环境名称>` ---
### 1. 克隆仓库 哦,你或许需要先配置一下git,自己去b站搜教程吧,我就不多讲了 拿着[这个](https://www.runoob.com/git/git-tutorial.html)吧,可以当作cheatsheet ### 2. 配置你的IDE
Pycharm 配置 --- 首先,我们安装的是社区版的Pycharm,当然你有专业版也没问题 然后看这个教程设置中文[[知乎]如何安装pycharm并设置为中文。](https://zhuanlan.zhihu.com/p/454935826) 然后点击左上方`文件-打开`,定位到`little-quadcopter`文件夹,点击**确定** 这个时候你已经打开了整个项目,main.py是整个程序的入口 点击下方的**终端**按钮,会打开一个熟悉的powershell窗口,输入 `conda activate <你的conda环境名称>` 来进入前面配置好的conda环境 接下来cd到项目文件夹,在终端输入`python .\setup.py`并回车运行,初始化环境 默认使用tuna镜像源下载,如果你有代理服务器可以加上代理服务器地址,例如`python .\setup.py --proxy http://127.0.0.1:7890` 这就准备完了,输入`python .\main.py -h` 查看帮助 ---
VS Code 配置方法 --- 首先打开项目文件夹,然后右下角会提示安装推荐插件,就全部安装就行,插件的配置前面视频里有讲 然后按`ctrl`+`shift`+`p`调出命令窗口,输入`python`,选择python解释器一项,选择你自己配置的环境 然后点击上方终端,新建终端,会自动帮你激活你的conda环境 接下来cd到项目文件夹,在终端输入`python .\setup.py`并回车运行,初始化环境 默认使用tuna镜像源下载,如果你有代理服务器可以加上代理服务器地址,例如`python .\setup.py --proxy http://127.0.0.1:7890` 这就准备完了,输入`python .\main.py -h` 查看帮助 ---
## 代码 `main.py`是整个程序的入口,主要功能的实现都写在`src/shapedetect`下
实现 `[]`包裹的参数为可选参数,有默认值 | 方法 | 定义 | |----------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------| | [Picture.\_\_init__()](src/shapedetect/Picture.py#L8) | 实例化Picture类需要输入一个图片路径或者一个cv图像 | | [Picture.putText(string_to_write[, put_where, fontFace, fontScale, color, thickness, lineType])](src/shapedetect/Picture.py#L17) | 需要至少输入要写的字,(要写的字, 坐标, 字体, 大小, 颜色, 粗细, 线型) | | [Picture.show()](src/shapedetect/Picture.py#L27) | 显示Picture.modify | | [Picture.resize(width)](src/shapedetect/Picture.py#L32) | 需要输入宽度 | | [Picture.gray()](src/shapedetect/Picture.py#L36) | 灰阶处理图像 | | [Picture.blur([ksize, sigmaX])](src/shapedetect/Picture.py#L39) | 高斯模糊处理图像,可选参数(ksize-卷积核默认(5, 5), sigmaX-X 方向的高斯核标准差默认0) | | [Picture.threshold([thresh, maxval])](src/shapedetect/Picture.py#L42) | 二值化处理图像,可选参数(thresh-阈值, maxval-最大值) |