opencv3计算机视觉:python实现

opencv3计算机视觉:python实现_第1张图片

目录

一  处理图像

二 深度估计和分割

三 图像检索和描述符

四 目标检测识别与跟踪

 


一  处理图像

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的介绍和使用,理论知识较少。 

 

 

 

 

你可能感兴趣的:(书籍)