# AI 应用开发三十天冲刺计划
# 🚀 Day 1 实战:AI 视觉基石 ——OpenCV 智能证件照换底
# 1. 项目简介 (Project Overview)
本项目是 “30 天人工智能应用实战” 的第一站。目标是利用计算机视觉技术,实现对蓝底 / 浅蓝底证件照的背景自动识别与替换,生成符合规范的红底照片。
# 2. 技术栈 (Tech Stack)
- 开发工具:Cursor (AI-Powered Code Editor)
- 编程语言:Python 3.13
- 核心库:OpenCV-Python, Numpy
- 版本控制:Git + GitHub
# 3. 核心技术点 (Technical Highlights)
# A. 颜色空间转换 (HSV vs RGB)
- 痛点:RGB 空间受光照强度影响巨大,三个通道高度相关,难以精确锁定某种颜色。
- 解决方案:将图像转换至 HSV (Hue, Saturation, Value) 空间。我们将 H(色调)范围锁定在浅蓝色区间,从而实现对背景的精确提取。
# B. 掩模与位运算 (Masking)
- 通过 cv2.inRange 生成二值化掩模,将背景识别为白色(255),人像识别为黑色(0)。
# C. 形态学噪点处理 (Morphological Operations)
- 操作:使用 开运算 (Opening) —— 先腐蚀后膨胀。
- 目的:消除前景目标(如衣物、头发边缘)内部细小的误判噪点。
# 4. 踩坑与解决方案 (Troubleshooting - 面试重点)
# 🔴 坑 1:Python 环境路径冲突
- 现象:在终端执行 pip install 成功,但运行代码提示 ModuleNotFoundError: No module named 'cv2'。
- 原因分析:Windows 系统中存在多个 Python 环境,Cursor 调用的解释器路径与终端默认 pip 路径不一致。
- 对策:使用绝对路径安装法,通过 & C:/path/to/python.exe -m pip install 强制安装到当前开发环境,彻底解决路径错位问题。
# 🔴 坑 2:浅蓝色背景下的 “误伤” 噪点
-
现象:换底后,人像的灰色西装区域出现了密集的红点。
-
原因分析:衣服的灰色中含有微量蓝色分量,落入了我们设定的 HSV 阈值范围内。
-
对策:引入 cv2.morphologyEx 开运算,使用
5×55×5的卷积核滤除细小噪声,保证了衣物区域的颜色完整性。
# 🔴 坑 3:GitHub Push 响应超时
- 现象:git push 命令长时间卡死。
- 原因分析:GitHub 服务器位于海外,网络连接不稳定。
- 对策:通过命令行配置 Git 的全局代理(指向 v2rayN 的 10808 端口):
git config --global http.proxy http://127.0.0.1:10808
设置后,推送速度由 0 直接飙升至 20MB/s。
# 5. 核心代码片段 (Code Summary)
codePython
# 核心逻辑:HSV过滤 + 形态学优化
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower_blue = np.array([75, 40, 40])
upper_blue = np.array([115, 255, 255])
mask = cv2.inRange(hsv, lower_blue, upper_blue)
# 形态学去噪
kernel = np.ones((5, 5), np.uint8)
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
# 换色
res = img.copy()
res[mask == 255] = (0, 0, 255) # BGR格式:红色
# 6. 总结与展望 (Summary & Future Work)
今天成功打通了从环境配置 -> 算法编写 -> Git 版本控制的全流程。虽然只是简单的颜色过滤,但它揭示了 CV 处理中最核心的 Mask 思想。
明天目标:从静态图片转向实时视频流,利用帧差法实现摄像头动态物体检测。
原图
换底后的图
# 📝 Day 2 笔记:从 0 到 1 构建智能安防监控
1. 项目描述
利用 OpenCV 的视频流处理能力,基于帧差法 (Frame Differencing) 实现了一个实时运动检测预警系统。能够自动锁定移动目标并进行红框标注。
2. 核心算法流程
- 双帧比对:通过 cv2.absdiff 获取两帧图像的像素差异。
-
# 噪声抑制:
- cvtColor 转灰度减少计算量。
- GaussianBlur 抹平摄像头感光噪点。
-
# 特征增强:
- threshold 二值化分离运动区域。
- dilate 膨胀操作让目标区域更完整。
- 目标提取:使用 findContours 锁定物体并绘制矩形框。
3. 踩坑记录与性能调优(面试必杀技)
- 问题:初始运行发现屏幕红框乱跳,误报率极高。
-
# 分析:
- 摄像头热噪点导致背景像素微弱波动。
- 身体微小动作导致检测结果碎片化。
-
# 解决方案 (Optimization):
- 增大滤波核:将高斯核从 (5,5) 增大至 (21,21),大幅过滤高频噪声。
- 动态调整面积阈值:将 contourArea 过滤上限从 1500 提升至 10000,只针对人体规模的运动进行报警。
- 增加形态学迭代:增加膨胀次数,使碎裂的识别框自动合并。
# 第三部分:关于明天(Day 3 预告)
明天,我们将进入更 “硬核” 的视觉实战。
虽然今天的系统能发现 “有东西在动”,但它分不清那是人、是狗、还是个球。
Day 3:虚拟画笔 —— 颜色追踪与坐标控制
- 新高度:我们将不再被动地 “监控”,而是主动地 “交互”。
- 任务:你可以拿一个蓝色的盖子(或者任何颜色的物体)在摄像头前挥动,电脑会实时追踪它的轨迹,并让你在屏幕上 “凌空写字”。
- 核心逻辑:HSV 色彩空间的高级应用 + 实时轨迹绘制(这是 AR 增强现实的入门原理)。

