OpenCV系列学习之(四)

简介: OpenCV系列学习之(四)

一、图像特征

1、Harris角点检测

d5cea1f550c331250ff7ba78ce7e2ef3.jpg

数学原理如下

ef01245be818ed45514064e2c6ce5044.jpg

其中,w(u,v)是权重。为了化简,先泰勒展开

7cfedd8b15de98c4f684e310a6353a06.jpg

近似化简

e861e4b7255eaa2a2828a12151c0e54e.jpg

把矩阵对角化成为只有特征值x1,x2。当x1、x2都比较大时,则椭圆也比较大。

a42e563c2ed4929747de630eb75e1180.jpg

fd16a714c3dd63b467092764eb61ac69.jpg

31a96395819349f8b14d08b5aa54a203.jpg

R=x1x2-a*(x1+x2)

当R>0时,为角点,R≈0时,为平坦区;R<0时,为边界点。

算法实现

0aa76fedcb4660b9ad50094fc9d9ea5e.jpg

img=cv2.imread('chessboard.jpg')
print('imgage.shape',img.shape)
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
gray=np.float32(gray)#输入图像必须是 float32 ,最后一个参数在 0.04 到 0.05 之间dst=cv2.cornerHarris(gray,2,3,0.04)
print('dst,shape',dst.shape)
img[dst>0.01*dst.max()]=[0,0,255]
cv2.imshow('dst',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

二、图像特征sift(scale inVariant Feature transform)

1、图像尺度空间

f797535d3f9ed3587e5daf299ab6f340.jpg

23a0607108b7368dc783c21b37a62226.jpg

80ecc21a5bcd0fb936b82cd4bb89846d.jpg

8ed8577203a2fb8ad5652f6cf06edc3b.jpg

关键点精确定位

029c65a95a8719472701faf568efea4b.jpg

运用泰勒展开对离散的店进行拟合,最后得到下面点的精确定位的公式。一般书上都是写下面的公式。

b02db740dbfde271cf29a02406371217.jpg

用高斯滤波可能会增加一些边界,所以要消除边界响应。

eaab12870e4f39aedea58dfe387e092e.jpg

727556ea4c4dcafe99b4f3d4394f8e86.jpg

生成特征描述。一般有个很多个方向,只需要统计8个方向,每个方向45°。

09a5d02a3ad48f0ddbd29c1dd3fbf4a6.jpg

然后进行旋转操作即预处理操作

727556ea4c4dcafe99b4f3d4394f8e86.jpg

e27744f5a58c9ff75870149fa41a05b8.jpg

455e0bbac32c97299e2df19ec1fe3685.jpg

sift算法实现

由于OpenCV3.5之后这个函数有专利保护,所以以后的OpenCV版本都不能用这个函数了。要用的话建议安装opencv3.4.15

9c877ed098fc673edb41e7df8042ecf0.jpg

相关文章
|
2月前
|
机器学习/深度学习 存储 数据库
Python3 OpenCV4 计算机视觉学习手册:6~11(5)
Python3 OpenCV4 计算机视觉学习手册:6~11(5)
63 0
|
2月前
|
存储 资源调度 算法
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
114 0
|
2月前
|
机器学习/深度学习 算法 数据可视化
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-2
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
126 0
|
2月前
|
机器学习/深度学习 Ubuntu Linux
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-1
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
91 1
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
OpenCV与AI深度学习之常用AI名词解释学习
AGI:Artificial General Intelligence (通用人工智能):是指具备与人类同等或超越人类的智能,能够表现出正常人类所具有的所有智能行为。又被称为强人工智能。
22 2
|
23天前
|
机器学习/深度学习 开发框架 TensorFlow
### 如何系统化学习OpenCV4
### 如何系统化学习OpenCV4
13 0
|
2月前
|
算法 计算机视觉 Python
【OpenCV】-算子(Sobel、Canny、Laplacian)学习
【OpenCV】-算子(Sobel、Canny、Laplacian)学习
|
2月前
|
存储 计算机视觉
OpenCV—学习基本绘图
OpenCV—学习基本绘图
|
2月前
|
算法 C++ 计算机视觉
Opencv(C++)学习系列---Laplacian拉普拉斯边缘检测算法
Opencv(C++)学习系列---Laplacian拉普拉斯边缘检测算法
127 0
|
2月前
|
算法 计算机视觉 C++
Opencv(C++)学习系列---Sobel索贝尔算子边缘检测
Opencv(C++)学习系列---Sobel索贝尔算子边缘检测