金砖创新 - 云边端应用开发学习记录
配合 为巽 大佬的文章食用更佳
环境相关
1 | # Python 版本:3.7.7 |
1 | # 换清华源 |
1 | # 降低 urllib3 |
jupyter Lab 自动补全
1. 安装 jupyterlab-lsp
1 | pip install jupyterlab-lsp |
2. 开启自动补全
路径:Settings -> Advanced Settings Editor -> Notebook
1 | { |
读取视频并抽帧
打开”com_rec/task1/collect/ 数据采集.ipynb”文件,完成以下任务:
1. 读取视频并查看视频信息
1 | # <1> 读取视频 |
2. 视频抽帧
1 | # <1> 读取图像 |
数据处理
打开”com_rec/task1/process/ 数据处理.ipynb”文件,完成以下任务
1. 完成系统 OS 模块使用
1 | # <1> 判断文件夹是否存在 |
2. 完成 2.3 图像颜色转换
1 | # <1> 定义图像盒子,赋值给 imgbox_GARY |
3. 完成 2.4 二值化处理
1 | # <1> 传入灰度图像,阈值为变量 threshold,超过阈值像素改为 255,采用 cv2.THRESH_BINARY_INV 的实施方式 |
4. 完成 2.5 图像边缘检测
1 | # <1> 读取当前目录下的 wuyanzu.png 的灰度图片 |
其他特别备注相关
1 | # CV2,窗口等待 5ms |
基于给定评分细则和标准
数据采集
查看“camera.ipynb”代码块 1:
1
2
3
4
5
6
7
8
9
10
11# 读取摄像头一帧图像
cv2.VideoCapture(camera_id)
# 图象在 "image_win", 括号内的 2 个参数
cv2.imshow("image_win", image)
# 图像显示延迟 5ms
cv2.waitkey(5)
# 图像保存,括号内 2 个参数
cv2.imwrite("image/image_{}.jpg".format(num), self.image)查看“camera.ipynb”代码块 2:
1
2
3
4
5# 实例化化 CameraThread 类,括号内的 3 个参数
camera_th = CameraThread(0, 640, 480)
# 启动摄像头线程
camera_th.start()查看“camera.ipynb”代码块 3:
1
2
3
4
5# 调用摄像头线程图像保存方法
camera_th.save_img(num)
# 停止摄像头线程,释放资源
camera_th.stop()查看 image 文件夹
pass
数据特征提取
查看“process.ipynb”代码块 1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26# 生成旋转矩阵,括号内 3 个参数
# 补全括号内三个形参,中心点 center, 旋转角度 angle, 图像缩放比 scale
M = cv2.getRotationMartix2D(center, angle, scale)
# 执行旋转,括号内 3 个参数
# 补全括号内三个形参, 图片 img, 旋转矩阵 M, 坐标(w, h)
rotateg_img = cv2.warpAffine(img, M, (w, h))
# 获取目标文件夹文件数目
# 文件夹内完全由文件组成,不考虑二级目录的情况
img_num = len(img_list)
# 提取 img_list 前 20% 图像
# 向前 20% 切片
for img in img_list[:(img_num * 0.2)]:
# 调用图片旋转方法,括号内 2 个参数 '
# 补全 rotate 方法两个实参, 图片内容 img_data, 旋转角度 -90
rotated_img = rotate(img_data, -90)
# 图像保存,括号内 2 个参数
# 补全 imwrite 方法两个形参, 保存路径 save_path, 旋转后图片 rotated_img
cv2.imwtire(save_path, rotated_img)
## 有运行报文
pass查看“processed”文件夹:文件夹内有 2 张图片文件
算法训练与性能评估
AI 应用系统开发
- 完成“2.2 人脸检测”:
1 | # 请在下方 `<1>` 处填写代码, 读取位于 `./src/wuyanzu.png` 下的待测图片 |
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自枫林·浅羽·云梦
评论