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

opencv3计算机视觉:python实现

目录

一  处理图像

二 深度估计和分割

三 图像检索和描述符

四 目标检测识别与跟踪

 


一  处理图像

1.多数常用opencv函数都在  cv2 模块内,因为它采用面向对象的方式,之前的cv模块多采用面向过程的方式。

 

2.原始图像由许多频率组成,我们可以分离这些频率来理解图像和提取ROI。(region of interest) 

 

3.图像的幅度谱 spectrum

最明亮的像素放到中央,逐渐变暗,边缘最暗。

 

4.核的本质是权重,基于核的滤波器(滤波函数)被称为卷积滤波器(卷积函数)。

 

5.  cv2.findContours  和  cv2.approxPloyDP 计算近似的多边形框

    cv2.convexHull 来计算凸包

HoughLines 和 HoughLinesP 用来检测直线,前者运用标准hough变换,后者使用概率Hough 变换。

HoughCircles检测圆。

 

二 深度估计和分割

  • 深度图像:灰度图,像素值是摄像头到物体表面的距离。
  • 点云图: 图像的每种颜色对应一个(X/Y/Z)维度空间。BGR图像中B对应x,G对应y,R对应z。(蓝色右边,绿色向上,红色深度)
  • 视差图:灰度图。图像的每个像素值代表物体表面的立体视差。
  • 立体视差:近距离的物体产生大的立体视差,远距离的物体反之。因此近距离的物体视差图中更明亮一些。                                有效的视差值和平均视差值相差一定范围以上的时候,即可将像素看做噪声。
  • 有效深度掩模:给定像素的深度信息是否有效(0表示无效,非零值表示有效。一般阴影部分就表示无效。)

 

2.1 从二维图片中分离出前景和背景可用的算法:Grabcut   分水岭

 

2.2 人脸识别检测

人脸检测算法:类harr特征 级联,具有尺度不变性,但是不具有旋转不变性。

人脸识别算法:Eigenfaces   Fisherfaces  和LBPH( Local Binary Pattern Histogram)

 

三 图像检索和描述符

3.1 特征检测算法

Harris 和 FAST 检测角点

SIFT  SURF   BRIEF 检测斑点 (blob)

ORB 融合了带方向的FAST和旋转也不变的 BRIEF

3.2  匹配算法

暴力匹配法 (Brute-Force)

FLANN

3.3 特征提取检测

DOG 对同一图像使用不同高斯滤波器得到的结果。

SIFT 对象会使用DOG 检测关键点。

python  大多数处理算法都需要图像为灰度格式。  why?

 

四 目标检测识别与跟踪

图像目标检测识别

梯度直方图(Histogram of orientation Gradient) HOG

图像金字塔 (image pyramid)

滑动窗口(sliding window)

非最大值抑制

支持向量机(SVM):对带标签的数据进行分类

 

视频目标跟踪之背景分割

cv2.findContours :计算图像中目标的轮廓

cv2.boundinRect:计算矩形的边界框

类BackgroundSubtractor:    分割前景和背景

opencv3中含有三种背景分割器:

  • K-Nearest   (KNN)
  • Mixture of Gaussians (MOG)
  • Geometric Multigid(GMG)
  •  

视频目标跟踪之均值漂移

Meanshift

彩色直方图 calcHist

视频目标跟踪之CAMShift

 

视频目标跟踪之卡尔曼滤波器

 

五 书评

这本书可以说是一个老外的基于python语言的opencv库的使用记录。

设计python中opencv的API的介绍和使用,理论知识较少。 

 

 

 

 

相关文章:

  • SLAM求职经验帖
  • FLANN匹配算法
  • 图像处理行业入门
  • 如何学好图像处理
  • 图像检索综述 (传统方法)
  • 数字图像处理:二 (武汉理工)
  • Kinect v2配置移动电源解决方案
  • 图像领域博主
  • SVM(support vector machine)
  • 麻省理工学院(MIT)研究生学习指导—— 怎样做研究生
  • 博士生提高科研幸福感的途径
  • 算法工程师的危机
  • 论文类型 Journal 、 magazin 、 transaction 、 letter 等的区别
  • latex 真的 很简单!
  • 查看大型工程源代码方法
  • [笔记] php常见简单功能及函数
  • angular组件开发
  • ES6系列(二)变量的解构赋值
  • js写一个简单的选项卡
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Mybatis初体验
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 我看到的前端
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 1.Ext JS 建立web开发工程
  • ​马来语翻译中文去哪比较好?
  • #1014 : Trie树
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #传输# #传输数据判断#
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (8)STL算法之替换
  • (arch)linux 转换文件编码格式
  • (BFS)hdoj2377-Bus Pass
  • (day 12)JavaScript学习笔记(数组3)
  • (floyd+补集) poj 3275
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (转载)从 Java 代码到 Java 堆
  • .net CHARTING图表控件下载地址
  • .net Signalr 使用笔记
  • .Net转前端开发-启航篇,如何定制博客园主题
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @基于大模型的旅游路线推荐方案
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [1525]字符统计2 (哈希)SDUT
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [Android] Android ActivityManager
  • [C++基础]-入门知识
  • [FROM COM张]如何解决Nios II SBTE中出现的undefined reference to `xxx'警告
  • [GXYCTF2019]BabySQli1