使用python实现Harris角点检测(不直接调用opencv)

Harris角点检测实现


看之前,你最好知道一下Harris角点原理,相关文章很多,本篇文章主要讲解代码实现。

1、Harris角点步骤总结

流程总结:

  1. 计算图像梯度,比如Sobel算子 (如果彩色图先转化为灰度图)
  2. 根据图像梯度为每个点计算二阶矩矩阵特征值
  3. 寻找具有较大响应的点(λmin或者R大于阈值)
  4. 选择那些λmin或者R是局部最大值的点作为关键点(非最大值抑制)

这也是我们代码的逻辑结构。

2、代码实现

# 使用python实现Harris角点检测
import cv2 
import numpy as np

# 非最大值抑制
def non_max_suppression_matrix(matrix, neighborhood_size):
    if matrix.ndim != 2:
        raise ValueError("输入矩阵必须是二维矩阵")

    height, width = matrix.shape
    half_size = neighborhood_size // 2

    suppressed_matrix = np.zeros_like(matrix)

    for y in range(half_size, height - half_size):
        for x in range(half_size, width - half_size):
            local_patch = matrix[y - half_size:y + half_size + 1, x - half_size
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值