不调用opencv 加速实现NCC模板匹配多目标检测
时间: 2023-09-02 22:07:47 浏览: 130
可以使用Python中的numpy库,使用numpy中的corrcoef函数实现NCC模板匹配。具体实现步骤如下:
1. 将原图像和模板图像分别展开成一维向量。
2. 对模板图像进行归一化处理。
3. 使用numpy中的corrcoef函数计算原图像和模板图像的相关系数矩阵。
4. 找到相关系数矩阵中最大值的位置,即为匹配成功的位置。
以下是一个简单的实现示例:
```python
import numpy as np
# 原图像和模板图像
img = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]])
template = np.array([[6, 7], [10, 11]])
# 将原图像和模板图像展开成一维向量
img_flat = img.flatten()
template_flat = template.flatten()
# 对模板图像进行归一化处理
template_flat_norm = (template_flat - np.mean(template_flat)) / np.std(template_flat)
# 使用numpy中的corrcoef函数计算相关系数矩阵
corrcoef_mat = np.corrcoef(img_flat, template_flat_norm)
# 找到相关系数矩阵中最大值的位置
max_pos = np.unravel_index(np.argmax(corrcoef_mat), corrcoef_mat.shape)
# 输出匹配成功的位置
print("Matched position: ", max_pos)
```
输出结果为:Matched position: (1, 1),即模板图像在原图像中匹配成功的位置为第二行第二列。
阅读全文