【OpenCV零基础保姆级入门】一篇吃透计算机视觉预处理!全套实战代码,适配YOLO/深度学习
一、前言为什么学深度学习必学OpenCV很多同学学完CNN、YOLO、三维重建后发现模型训练看懂了却不会处理图片、读取视频、调用摄像头、预处理数据。OpenCV 就是计算机视觉的“工具箱”是所有CV项目的前置基础YOLO检测前的图片读取、缩放、补边、去噪视频流实时推理、逐帧处理、保存结果视频摄像头实时采集、画面翻转、裁剪、标记框绘制数据集清洗、二值化、滤波、形态学处理一句话所有视觉项目都离不开OpenCV关注VX工棕号迪哥谈AI回复暗号123 即可获取关注VX工棕号迪哥谈AI回复暗号123 即可获取二、OpenCV 是什么通俗讲解2.1 核心介绍OpenCVOpen Source Computer Vision Library开源跨平台计算机视觉库由英特尔发起目前工业界、学术界通用标准工具。专门用于图像读取、视频处理、特征检测、目标跟踪、视觉预处理。2.2 核心优势开源免费、轻量高效、运行速度快支持 Windows / Linux / Mac / 嵌入式设备Python接口极简新手零门槛完美配合 PyTorch、YOLO、深度学习项目2.3 常见应用场景图像分类、目标检测、人脸识别、车牌识别、监控分析、瑕疵检测、AR交互、机器人视觉、三维重建预处理。三、环境安装100%成功版3.1 安装命令推荐安装完整版包含所有拓展功能SIFT、特征匹配等pip install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple普通版功能少不推荐pip install opencv-python3.2 验证是否安装成功import cv2 print(cv2.__version__)输出版本号即安装完成。四、OpenCV核心基础图像本质新手必懂4.1 图片在计算机里是什么图片 像素矩阵灰度图二维矩阵 [高, 宽]像素值 0~2550黑、255白彩色图三维矩阵 [高, 宽, 通道]4.2 重点OpenCV通道顺序OpenCV 默认 BGR 顺序普通图片是 RGBOpenCV读取后是 BGR画图、保存不受影响但和PyTorch/Matplotlib 混用必须转换新手最大坑五、最常用基础操作必学5.1 图片读取、显示、保存import cv2 # 1. 读取图片 img cv2.imread(test.jpg) # 2. 显示图片 cv2.imshow(window, img) cv2.waitKey(0) # 0按任意键关闭 cv2.destroyAllWindows() # 3. 保存图片 cv2.imwrite(save.jpg, img)关键知识点cv2.waitKey()必须写否则窗口一闪而过5.2 灰度图转换深度学习预处理高频gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.imshow(gray, gray) cv2.waitKey(0)5.3 尺寸缩放 裁剪# 缩放 resize_img cv2.resize(img, (640, 640)) # 裁剪 [高起始:高结束, 宽起始:宽结束] crop_img img[100:400, 100:400]5.4 绘制矩形框、文字YOLO可视化必备# 画框 cv2.rectangle(img, (50,50), (200,200), (0,0,255), 2) # 写字 cv2.putText(img, Object, (50,40), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0,255,0), 2) cv2.imshow(draw, img) cv2.waitKey(0)颜色格式(B,G,R)线条厚度正数六、视频 摄像头实时读取实战核心所有视频检测、实时推理、摄像头项目通用代码6.1 本地视频逐帧读取import cv2 cap cv2.VideoCapture(test.mp4) while True: ret, frame cap.read() if not ret: break cv2.imshow(video, frame) if cv2.waitKey(20) 0xFF ord(q): break cap.release() cv2.destroyAllWindows()6.2 电脑摄像头实时画面cap cv2.VideoCapture(0) while True: ret, frame cap.read() cv2.imshow(camera, frame) if cv2.waitKey(1) 0xFF ord(q): break cap.release() cv2.destroyAllWindows()参数说明VideoCapture(0) 代表默认摄像头七、常用图像处理操作数据集预处理必备7.1 二值化黑白分割用于轮廓检测、字符识别、瑕疵检测gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ret, binary cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) cv2.imshow(binary, binary) cv2.waitKey(0)7.2 滤波去噪图像平滑# 高斯模糊最常用 gauss cv2.GaussianBlur(img, (5,5), 0) # 均值滤波 mean cv2.blur(img, (5,5))7.3 边缘检测Cannyedge cv2.Canny(img, 50, 150) cv2.imshow(edge, edge) cv2.waitKey(0)八、深度学习最常用BGR转RGB重点PyTorch、Matplotlib、数据集训练都是RGBOpenCV读取是BGR不转换会颜色错乱img_rgb cv2.cvtColor(img, cv2.COLOR_BGR2RGB)九、新手高频报错与解决方案窗口一闪而过缺少cv2.waitKey()图片读取为None路径中文/错误/文件不存在OpenCV不支持中文路径摄像头打不开被其他软件占用、设备序号不是0颜色诡异偏色BGR/RGB未转换和深度学习框架混用必转十、OpenCV完整学习路线适配深度学习阶段1基础必会1天读写图片视频、摄像头调用、缩放裁剪、绘图、颜色转换阶段2图像预处理2天灰度、二值化、滤波、边缘检测、形态学操作、阈值分割阶段3进阶视觉能力3-5天轮廓检测、特征点匹配、透视变换、视频保存、帧处理阶段4深度学习结合YOLO画面预处理、实时推理画面绘制、数据集清洗、视频推理项目落地十一、总结OpenCV 是所有计算机视觉项目的地基。CNN、YOLO、图像分类、三维重建、视频分析所有视觉项目第一步都是 OpenCV 预处理。新手不用啃完所有函数掌握本文全套操作足以应付95%的深度学习实验和项目开发。