当前位置: 首页 > news >正文

open CV 从基础到入门 (笔记整理)python

🎯 目标方向"小辉懂编程正在向全力迈进!

🆔 版权声明原创文章,如需转载请告知作者。

📅 创作时间:2025 年 12 月 17 日

📂 个人主页:小辉懂编程-CSDN博客

📌 专栏系列:python - open CV 专栏

💬 互动交流:欢迎点赞👍|收藏⭐|留言📝,一起交流技术,共同进步!

🌟 公众平台:文章底部公众号(小辉快乐编程)可以获取学习资料,共同进步

🌟 个人格言"代码改变世界,逻辑塑造未来!"

openCV 基础概念

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,支持跨平台开发,涵盖图像处理、视频分析、机器学习等功能。核心模块包括:

  • imgproc:图像处理(滤波、边缘检测等)
  • highgui:图像显示与交互
  • core:基础数据结构(如矩阵操作)
  • video:视频分析与运动跟踪

1.安装与环境配置

Python 环境下通过 pip 安装:

pip install opencv-python # 基础模块 pip install opencv-contrib-python # 包含扩展模块

OpenCV主要函数

函数名主要作用常见应用场景
cv2.imread()读取图像文件从文件路径加载图像数据到内存
cv2.imshow()显示图像窗口在窗口中展示图像内容
cv2.imwrite()保存图像文件将处理后的图像写入到磁盘文件
cv2.cvtColor()颜色空间转换如RGB转灰度图、RGB转HSV
cv2.resize()调整图像尺寸缩放图像到指定大小
cv2.GaussianBlur()高斯模糊图像降噪、平滑处理
cv2.Canny()Canny边缘检测提取图像中的边缘信息
cv2.findContours()查找轮廓在二值图像中检测物体轮廓
cv2.threshold()阈值处理图像二值化(全局阈值)
cv2.adaptiveThreshold()自适应阈值处理图像二值化(局部阈值)
cv2.HoughLines()霍夫直线变换检测图像中的直线
cv2.HoughCircles()霍夫圆变换检测图像中的圆形
cv2.matchTemplate()模板匹配在图像中搜索特定模板的位置
cv2.VideoCapture()视频捕获对象读取摄像头或视频文件
cv2.VideoWriter()视频写入对象保存视频帧为视频文件
cv2.erode()腐蚀操作形态学处理,减小前景区域
cv2.dilate()膨胀操作形态学处理,增大前景区域
cv2.morphologyEx()形态学操作开运算、闭运算、形态学梯度等
cv2.calibrateCamera()相机标定计算相机内参和畸变系数
cv2.undistort()图像校正去除镜头畸变

图像读取与显示

import cv2 # 读取图像(参数:文件路径,标志如 cv2.IMREAD_COLOR) image = cv2.imread('image.jpg') # 显示图像(窗口名称,图像数据) cv2.imshow('Display', image) cv2.waitKey(0) # 等待按键关闭窗口 cv2.destroyAllWindows()

2.图像基本操作

颜色空间转换

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 转为灰度图 hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # 转为HSV空间

绘制图形

cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2) # 画矩形 cv2.putText(image, 'Text', (x, y), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2)

3.图像处理技术

边缘检测(Canny)

edges = cv2.Canny(gray, threshold1=50, threshold2=150)

阈值处理

_, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

滤波(高斯模糊)

blurred = cv2.GaussianBlur(image, (5, 5), 0)

视频处理

读取摄像头或视频文件

cap = cv2.VideoCapture(0) # 0 为默认摄像头 while True: ret, frame = cap.read() if not ret: break cv2.imshow('Video', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release()

4.特征检测与匹配

SIFT 特征点检测

sift = cv2.SIFT_create() keypoints, descriptors = sift.detectAndCompute(gray, None) image_with_keypoints = cv2.drawKeypoints(image, keypoints, None)

ORB 快速匹配

orb = cv2.ORB_create() kp1, des1 = orb.detectAndCompute(img1, None) kp2, des2 = orb.detectAndCompute(img2, None) bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) matches = bf.match(des1, des2)

实战应用示例

人脸检测(Haar 级联)

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5) for (x, y, w, h) in faces: cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)
http://www.cnnetsun.cn/news/118559.html

相关文章:

  • 大型语言模型服务工具:让AI开发像喝柠檬水一样清爽 [特殊字符]
  • 如何快速掌握Mermaid在线编辑器:面向技术文档编写者的完整教程
  • WGPU性能调优实战:从卡顿到流畅的终极指南
  • 8、iOS 开发中的音频与视频处理
  • 18、构建社交增强现实应用:从坐标存储到社交上下文添加
  • HFT-Orderbook:高性能交易订单簿的终极解决方案
  • veScale:PyTorch原生大语言模型训练框架完整指南
  • Easy Effects终极音效配置指南:50+专业预设深度解析
  • 嵌入式Web服务器实战:STM32Cube与Mongoose完美融合
  • EmotiVoice语音抗噪能力测试:嘈杂环境可用性
  • 拒绝制造虚假情感依赖:产品设计准则
  • 推荐12个中英文降AIGC率工具,亲测有效!(含免费)
  • Taskflow:现代C++并行编程框架深度解析
  • Strapi无头CMS架构深度解析与现代化应用实践
  • 高效实现!分布式链路追踪:TraceIdFilter + MDC + Skywalking
  • EmotiVoice声音克隆功能实测:5秒样本还原度高达90%以上
  • AI服务热更新终极方案:零停机模型动态替换完整指南
  • 彻底告别语言障碍:Agent Zero多语言界面配置终极指南
  • 全国铁路货运站点分布图使用全攻略
  • AMD GPU终极指南:快速部署FlashAttention实现3-5倍AI加速
  • 从零开始掌握Stability AI视频生成:5步解决常见问题并提升效果
  • 只需3秒音频样本!EmotiVoice实现精准声音克隆
  • EmotiVoice日志分析:定位语音生成异常原因
  • Nacos配置推送失败的5个致命陷阱及终极修复方案
  • Sealos动态PVC管理终极指南:三步告别存储运维烦恼
  • 基于SpringBoot+Vue的滑雪场管理系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • Java Web 短流量数据分析与可视化abo系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • 【计算机毕业设计案例】基于springboot+微信小程序的DIY电脑推荐与交流平台DIY组装电脑踩坑,手残党DIY装机分享(程序+文档+讲解+定制)
  • Bazel终极指南:快速构建大规模多语言项目的完整解决方案
  • 终极Git文件管理指南:快速配置.gitattributes模板集合