Metadata-Version: 2.1
Name: opencv-webcam-script
Version: 0.2.0
Summary: webcam opencv script
Home-page: https://gitee.com/CV_Lab/opencv-webcam
Author: Yifu Zeng
Author-email: zyfiy1314@163.com
License: GPL-3.0 Licence
Keywords: opencv,webcam
Platform: any
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: opencv-python

<p align="center">
<a href="https://gitee.com/CV_Lab/opencv_webcam">
<img src="https://gitee.com/CV_Lab/opencv_webcam/attach_files/932349/download/%E7%81%AB%E7%AE%AD.svg" alt="Simple Icons" width=64 height=64>
</a>
<h3 align="center">OpenCV Webcam Script</h3>
<p align="center">
基于OpenCV的Webcam程序，可用于视频帧采集、重塑尺寸等。具有安装便捷、操作简单等特点</p>
</p>


<p align="center">
<a href="https://pypi.org/project/opencv-webcam-script/"><img src="https://img.shields.io/badge/PyPi-v0.1-brightgreen?logo=pypi" alt="PyPi" /></a>
<a href="https://gitee.com/CV_Lab/opencv_webcam/releases/v0.1"><img src="https://img.shields.io/badge/latest%20version-v0.1-green" alt="Version" /></a>
<a href="https://hub.docker.com/r/zengdockerdocker/opencv-webcam-script"><img src="https://img.shields.io/badge/docker-v0.1-blue?logo=docker" alt="Docker" /></a>
<a href="https://gitee.com/CV_Lab/opencv_webcam/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-GPL--3.0-blue" alt="License" /></a>
</p>



<h3 align="center">更新走势</h3>
<hr>

- `2022-01-06` **:zap: [opencv-webcam-script v0.2 Jupyter版](https://gitee.com/CV_Lab/opencv_webcam/blob/master/tutorial.ipynb)正式上线**
- `2022-01-01` **:zap: [opencv-webcam-script v0.1 发行版](https://gitee.com/CV_Lab/opencv_webcam/releases/v0.1)正式上线**
- `2021-12-31` **:zap: [opencv-webcam-script v0.1 docker版](https://hub.docker.com/r/zengdockerdocker/opencv-webcam-script)正式上线**
- `2021-12-29` **:zap: [opencv-webcam-script v0.1 PyPi版](https://pypi.org/project/opencv-webcam-script/0.1/)正式上线**

<h3 align="center">安装教程</h3>
<hr>

#### :white_check_mark: 方法一：Linux Shell安装（开发版）

```shell
# 克隆项目
git clone https://gitee.com/CV_Lab/opencv_webcam.git
# 创建conda虚拟环境，以python 3.8为例
conda create -n ow python==3.8 # 虚拟环境名称为ow
conda activate ow # 激活虚拟环境
pip install -r ./requirements.txt -U # 安装OpenCV Webcam脚本
```



#### :white_check_mark: 方法二：pip 快速安装（API版）

- 第一步：创建ow虚拟环境，参见方法一
- 第二步：执行pip指令

```shell 
pip install opencv-webcam-script
```

- 第三步：编写python程序

```python
from opencv_webcam.opencv_webcam import webcam_opencv
# 直接使用webcam_opencv
webcam_opencv(device_index=0, quit_key='q', is_autoSaveFrame=False, frame_saveDir='./webcam', frame_nSave=1, is_headSaveFrame=False, frame_capKey='a', is_resizeFrame=False, resize_frame=[640, 480], resizeRatio_frame=1.0)
```



#### :white_check_mark: 方法三：docker 镜像安装（容器版）

```shell
sudo docker pull zengdockerdocker/opencv-webcam-script:v0.1 # 镜像拉取

xhost +local:root # 配置xhost
sudo docker run --ipc=host -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY --device=/dev/video0:/dev/video0 zengdockerdocker/opencv-webcam-script:v0.1 # 进入容器
python3 opencv_webcam.py # 运行脚本程序
```






<h3 align="center">使用教程</h3>
<hr>

#### :bulb: 常规调用

```shell
# 默认按q键退出
python opencv_webcam.py
```



#### :bulb: 摄像头选择

```shell
# 多摄像头切换示例
python opencv_webcam.py -dev 1
python opencv_webcam.py -dev 2
```



#### :bulb: 设置退出键

```shell
# 默认按q键退出
# 设置z键退出
python opencv_webcam.py -q z
# 设置k键退出
python opencv_webcam.py -q k
```



#### :bulb: 自动保存帧

```shell
python opencv_webcam.py -isasf
```



#### :bulb: 每隔n帧保存一次帧

```shell
# 每隔10帧保存一次帧
python opencv_webcam.py -isasf -fns 10
```



#### :bulb: 手动保存帧

```shell
# 默认按a键捕获一帧
python opencv_webcam.py -ishsf
```



#### :bulb: 自定义捕获键

```shell
# 设置z键为捕获键
python opencv_webcam.py -ishsf -fck z
```



#### :bulb: 重塑帧尺寸（自定义宽高）

```shell
# 重塑宽度300 高度200
# 自动版
python opencv_webcam.py -isasf -isrf -rf 300 200
# 手动版
python opencv_webcam.py -ishsf -isrf -rf 300 200
```



#### :bulb: 重塑帧尺寸（自定义宽高缩放比）

```shell
# 宽高缩放比为0.5
# 自动版
python opencv_webcam.py -isasf -isrf -rrf 0.5
# 手动版
python opencv_webcam.py -ishsf -isrf -rrf 0.5
```



#### :bulb: 设置保存路径

```shell
# 设置保存路径，默认保存路径为./WebcamFrame
python opencv_webcam.py -fsd custom_dir -isasf # 以自动版为例
```



#### :bulb: 设置帧名前缀

```shell
# 设置帧图片的前缀名称
python opencv_webcam.py -isasf -fnp webcam
```



#### :bulb: 设置帧格式

```shell
# 设置JPG质量为100，默认为95
python opencv_webcam.py -isasf -fss jpg -jq 100
# 设置PNG质量为5，默认为3
python opencv_webcam.py -isasf -fss png -jq 5
```



#### :bulb: 设置暂停键

```shell
# 默认为p键
python opencv_webcam.py -p w
# 按任意键继续
```



#### :bulb: 设置保存帧数

```shell
# 设置保存100帧
python opencv_webcam.py -isasf -afn 100
```





#### :bulb: 指令查询

```shell
# 查询脚本参数
python opencv_webcam.py --help
```

<details open>
<summary>指令查询结果</summary>

```shell
usage: opencv_webcam.py [-h] [--device DEVICE] [--quit QUIT] [--is_autoSaveFrame] [--is_handSaveFrame] [--is_resizeFrame] [--frame_saveDir FRAME_SAVEDIR] [--frame_nSave FRAME_NSAVE]
                        [--frame_capKey FRAME_CAPKEY] [--resize_frame RESIZE_FRAME [RESIZE_FRAME ...]] [--resizeRatio_frame RESIZERATIO_FRAME] [--frame_namePrefix FRAME_NAMEPREFIX]
                        [--frame_saveStyle FRAME_SAVESTYLE] [--jpg_quality JPG_QUALITY] [--png_quality PNG_QUALITY] [--pause PAUSE] [--auto_frameNum AUTO_FRAMENUM]

OpenCV Webcam Script v0.2

optional arguments:
  -h, --help            show this help message and exit
  --device DEVICE, -dev DEVICE
                        device index for webcam
  --quit QUIT, -q QUIT  quit key for webcam
  --is_autoSaveFrame, -isasf
                        is auto save frame
  --is_handSaveFrame, -ishsf
                        is hand save frame
  --is_resizeFrame, -isrf
                        is resize frame
  --frame_saveDir FRAME_SAVEDIR, -fsd FRAME_SAVEDIR
                        save frame dir
  --frame_nSave FRAME_NSAVE, -fns FRAME_NSAVE
                        n frames save a frame (auto save frame)
  --frame_capKey FRAME_CAPKEY, -fck FRAME_CAPKEY
                        frame capture key (hand save frame)
  --resize_frame RESIZE_FRAME [RESIZE_FRAME ...], -rf RESIZE_FRAME [RESIZE_FRAME ...]
                        resize frame save
  --resizeRatio_frame RESIZERATIO_FRAME, -rrf RESIZERATIO_FRAME
                        resize ratio frame save
  --frame_namePrefix FRAME_NAMEPREFIX, -fnp FRAME_NAMEPREFIX
                        frame name prefix
  --frame_saveStyle FRAME_SAVESTYLE, -fss FRAME_SAVESTYLE
                        frame save style
  --jpg_quality JPG_QUALITY, -jq JPG_QUALITY
                        frame save jpg quality (0-100) default 95
  --png_quality PNG_QUALITY, -pq PNG_QUALITY
                        frame save jpg quality (0-9) default 3
  --pause PAUSE, -p PAUSE
                        webcam pause
  --auto_frameNum AUTO_FRAMENUM, -afn AUTO_FRAMENUM
                        auto save number of frames
```

</details>



