基于KITTI数据集的无人驾驶感知与传感器融合实现—(6)— Harris角点检测

基于KITTI数据集的无人驾驶感知与传感器融合实现—(6)— Harris角点检测

  • 学习前言
  • 一、Harris角点检测
  • 二、API介绍
    •    1) ```dst = cv.cornerHarris(src, blockSize, ksize, k[, dst[, borderType]])```
    •   2) ```dst = cv.dilate(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) ```
  • 三、代码&效果图

学习前言

  之前花了点时间把 Harris角点检测的原理和代码写了一篇博客,还不是很了解的同学可以进去看看-> Harris角点检测.
  这篇文章呢就只是针对车道上一些角点的特征的进行检测,所以比较简单,也没什么好修改的,目前这些预处理也一直是跟着原作者在走,不过到了后面特征匹配部分做完后我会写一些我自己修改了的部分,希望对各位有所帮助 ~ 哈哈哈
  老样子,我还是把原作者的项目连接放上面啦~ 连接.在这里插入图片描述

一、Harris角点检测

   Harris角点检测.不了解的同学可以点进去看看,这个我专门单独写的一篇关于Harris角点检测的文章,在上面也提到了。
  至于…会的,我就摆几张图,当作复习和回忆一下吧。
基于KITTI数据集的无人驾驶感知与传感器融合实现—(6)— Harris角点检测_第1张图片
基于KITTI数据集的无人驾驶感知与传感器融合实现—(6)— Harris角点检测_第2张图片

二、API介绍

   1) dst = cv.cornerHarris(src, blockSize, ksize, k[, dst[, borderType]])

    API功能:该功能在图像上运行Harris角检测器。

    参数:
      src: 输入单通道8位或浮点图像。
      blockSize:它是考虑进行角点检测的邻域的大小
      ksize:滑动核的大小。
      k:角点响应值R计算公式中的α。
    返回:
      dst: 用于存储哈里斯探测器响应的图像。它的类型为CV_32FC1,大小与src相同。

  2) dst = cv.dilate(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])

    API功能:通过使用特定的结构元素来放大图像。该函数使用指定的结构化元素来扩展源图像,该结构化元素确定在其上获取最大值的像素邻域的形状:
在这里插入图片描述

    该功能支持就地模式。可以进行几次(迭代)扩张。在多通道图像的情况下,每个通道都是独立处理的。

    参数:
      src: 输入图像;通道数可以是任意的,但深度应为CV_8U,CV_16U,CV_16S,CV_32F或CV_64F之一。
      kernel:用于扩张的结构元素;如果elemenat = Mat(),则使用3 x 3的矩形结构元素。
      anchor: 锚在元素内的位置;默认值(-1,-1)表示锚点位于元素中心。
      iterations:进行扩张的次数。
    返回:
      dst: 输出与src大小和类型相同的图像。

三、代码&效果图

import numpy as np
import cv2
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

#读入图片+高斯滤波+灰度
image = mpimg.imread('test_image/0000000086.png')
image = np.copy(image)
Blur = cv2.GaussianBlur(image,ksize=(9,9),sigmaX=2.0)
gray = cv2.cvtColor(Blur,cv2.COLOR_RGB2GRAY)
gray = np.float32(gray)


#角点检测block_size=2, sobel_ksize=3, k=0.04
dst = cv2.cornerHarris(gray,2,3,0.04)
dst = cv2.dilate(dst,None)

#角点响应值R=max*0.05
image[dst > 0.05 * dst.max()] = [0,255,0]

# 可视化结果
f, (ax1, ax2) = plt.subplots(1, 2, figsize=(18, 9))
f.tight_layout()

ax1.imshow(image)
ax1.set_title('image', fontsize=30)

ax2.imshow(dst)
ax2.set_title('dst', fontsize=30)

plt.subplots_adjust(left=0., right=1, top=0.9, bottom=0.)
plt.show()

基于KITTI数据集的无人驾驶感知与传感器融合实现—(6)— Harris角点检测_第3张图片

你可能感兴趣的:(计算机视觉,自动驾驶,opencv)