# 前言

没想到我又回来了,后面我的研究课题估计和 Python 逃不脱关系,终于又重新拾起了这门语言,所以便从头开始,把一些值得记录的记录下来,努力努力,向梦想前进!

# Scoop 安装 miniconda

我的开发环境是 windows,而 scoop 是 windows 上超好用的一个包管理工具,感兴趣的小伙伴可以看这篇博客(重装系统后要干的几件事)了解哟

用下面一行命令即可安装 miniconda

scoop install miniconda3

安装完后重启一下 everything,即可用 wox 输入 anaconda pow 快速启动 anaconda 的 shell 了

# conda 常用命令

命令备注
conda --version查看 conda 的版本号
conda env list列出所有环境
conda create --name 环境名称创建环境
conda create --name 环境名称 python=2.7创建指定 python 版本的环境
conda activate 环境名称进入环境
conda deactivate退出环境
conda remove --name 环境名称 --all删除环境,加 all 表示环境下的所有包一并被删除

# conda 换国内源

创建用户配置文件

conda config --set show_channel_urls yes

进入清华大学开源软件镜像站,复制配置内容到用户目录下刚创建的 .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

注意,把 .condarc 文件默认的内容删掉

输入 conda clean -i 清除默认缓存,用 conda config --show-sources 查看配置是否更换成功

# pip 换国内源

# 临时换源(不推荐)

可能要安装包里的依赖包下载依然缓慢

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名

# 永久换源(推荐)

  1. 在用户目录下创建 pip 文件夹(如:C:\Users\Administrator\pip)
  2. 在刚创建的 pip 文件夹下创建 pip.ini 文件
  3. 把以下配置内容放到刚创建的 pip.ini 文件里
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

# 安装 opencv

conda install opencv

# 安装 mediapipe

mediapipe 在 conda 上没有,所以就用 pip 安装

pip install mediapipe

# 运行手指骨骼检测 demo

"""
演示Demo
"""
# 导入 opencv
import cv2
import numpy as np
import math
# 导入 mediapipe:https://google.github.io/mediapipe/solutions/hands
import mediapipe as mp
mp_drawing = mp.solutions.drawing_utils
mp_drawing_styles = mp.solutions.drawing_styles
mp_hands = mp.solutions.hands
hands = mp_hands.Hands(
    model_complexity=0,
    min_detection_confidence=0.5,
    min_tracking_confidence=0.5)
# 读取视频流
cap = cv2.VideoCapture(0)
# 获取画面宽度、高度
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
while True:
    ret,frame = cap.read()
    # 镜像
    frame = cv2.flip(frame,1)
    frame.flags.writeable = False
    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    # 识别
    results = hands.process(frame)
    frame.flags.writeable = True
    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
    
    # 如果有结果
    if results.multi_hand_landmarks:
        
        # 遍历双手
        for hand_landmarks in results.multi_hand_landmarks:
            mp_drawing.draw_landmarks(
                frame,
                hand_landmarks,
                mp_hands.HAND_CONNECTIONS,
                mp_drawing_styles.get_default_hand_landmarks_style(),
                mp_drawing_styles.get_default_hand_connections_style())
            
    
    # 显示画面
    cv2.imshow('demo',frame)
    if cv2.waitKey(10) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

# 运行结果

哈哈,一个帅气的 印就被检测出来啦

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

宇凌喵 微信支付

微信支付

宇凌喵 支付宝

支付宝