用python实现Fast Directional Chamfer Matching,并可视化两张图上对应点的匹配关系
时间: 2023-02-09 16:10:16 浏览: 172
Fast Directional Chamfer Matching(简称FDCM)是一种用于匹配两张图像中对应点的算法。其基于求解两张图像上对应点之间的距离,并在这些距离中选取最小值来确定匹配关系。
下面是使用 Python 实现 FDCM 的步骤:
1. 导入所需的库:
```python
import numpy as np
import cv2
```
2. 读取两张图像并将它们转化为灰度图:
```python
# 读取图像
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
# 将图像转化为灰度图
gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
```
3. 计算两张图像的 FDCM 距离:
```python
# 设置 FDCM 参数
alpha = 1
beta = 1
# 计算 FDCM 距离
distance = cv2.createFDCM().compute(gray1, gray2, alpha=alpha, beta=beta)
```
4. 在两张图像上查找对应点:
```python
# 对 FDCM 距离进行归一化
normalized_distance = cv2.normalize(distance, None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_32F)
# 查找两张图像上的对应点
points1, points2 = cv2.findCorrespondingPoints(normalized_distance)
```
5. 可视化两张图像上对应点的匹配关系:
```python
# 在 img1 上画出对应点
for point in points1:
cv2.circle(img1, tuple(point), 5, (0, 0, 255), -1)
#
阅读全文