Loading [MathJax]/jax/output/CommonHTML/autoload/mtable.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >图像匹配中Harris角点特征提取

图像匹配中Harris角点特征提取

作者头像
mythsman
发布于 2022-11-14 06:27:05
发布于 2022-11-14 06:27:05
86900
代码可运行
举报
运行总次数:0
代码可运行

在进行图像检测或者是识别的时候,我们需要提取出一些有特征的点加以识别,最常用的就是基于点的识别。这里所谓的点,其实就是一些重要的点,比如轮廓的拐角,线段的末端等。这些特征比较容易识别,而且不容易受到光照等环境的影响,因此在许多的特征匹配算法中十分常见。

常见的特征点提取算法有Harris算 子(改进后的Shi-Tomasi算法)、Moravec算子、Forstner算子、小波变换算子等。现在就先介绍一下最常用的Harris角点检测算法。

简介

Harris算法的思想很简单,也很容易理解。

我们知道角点附近的区域相比于其他地方有这样一个显著的特点,就是无论沿着哪一个方向看,他灰度的变化率始终是很大的。也就是说假设我们有一个矩形窗口罩在角点附近,将这个窗口顺着任意方向移动一小段距离得到一个新的区域,将这个新的区域与旧的区域对应点的灰度做差得到的值始终很大。相比之下,平滑区域的变化就很小,而边缘区域沿着某些方向变化率大、某些方向变化率小。

Harris算法利用的就是这个特点,他首先定义了一个窗口函数w(x,y)来表示他选择的窗口区域,(x,y)表示点的坐标,w(x,y)表示这个坐标所占的权值。有时候我们用0-1赋值,表示选定一块区域,也有时候我们用高斯滤波减少噪点的影响;然后定义了一个方向向量(u,v),以及E(u,v)表示窗口沿着(u,v)方向移动后的梯度变化情况。并将E(u,v)做如下定义:

E(u,v)=Σx,yw(x,y)[I(x+u,y+v)I(x,y)]2

其中I(x,y)表示点(x,y)的灰度值。

根据上面的介绍我们知道角点的特征就是E(u,v)的值取较大值。那么为了更方便的计算,我们对他需要进行一下化简:

泰勒展开:I(x+u,y+v)I(x,y)=I(x,y)+uIx+vIy

其中Ix,Iy分别为灰度沿x,y方向的导数。

转化为矩阵形式:

最后定义一个估价函数R:

其中,k是一个控制参数。

为M的特征值。

这个估价函数个特性,就是当R较小时,图像是平坦的;当R小于0时,图像是一个边缘;当R很大时,这个图像是一个角点。因此通常我们会对R设置一个阈值,大于这个阈值的点我们可以看做是角点。

OpenCV调用

OpenCV里封装了Harris算法,调用下看看效果,就不自己实现了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#coding:utf-8
import cv2
import numpy as np

img=cv2.imread('test.png',cv2.IMREAD_GRAYSCALE)
cv2.imshow('gray.png',img)#控制背景为黑色
cv2.imwrite('gray.png',img)
im=np.float32(img)
dst=cv2.cornerHarris(im,3,3,0.04)#生成估价矩阵

height,width=dst.shape
mark=dst>0.01*dst.max()#寻找具有较大权值的像素点
height,width=mark.shape
for i in xrange(height):
    for j in xrange(width):
        if mark[i][j]:
            cv2.circle(img,(j,i),5,255)#标记得到的点
cv2.imshow('Harris.png',img)
cv2.imwrite('Harris.png',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

重要的步骤就是在估价矩阵里找到较大的那些点。

效果图

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HED 和 RCF 图像边缘检测
虽然传统边缘检测算法在不断发展的过程中也取得了很大的进步,但仍然无法做到精细的边缘检测处理。随着近年来深度学习的快速发展,计算机视觉领域因此获益颇丰,当下最先进的计算机视觉应用几乎都离不开深度学习,深入我们生活的各个领域如目标检测、工业、农业、医疗等。由于深度学习的特性,使得它成为最适合处理计算机视觉任务的工具之一,特别是卷积神经网络(CNN),得益于它强大的自动学习能力,图像边缘检测任务得到了长足的发展,涌现出了许多优秀的方法,如 N4-field、DeepContour、HED、RCF,基于神经网络的边缘检测算法成为了研究热点之一。
EmoryHuang
2022/10/31
1.2K0
HED 和 RCF 图像边缘检测
参数极少、速度极快 , UHNet 轻量级边缘检测技术 !
边缘检测是计算机视觉中的关键基础技术,对各种医学图像处理领域产生了深远的影响,如X光片,CT扫描和MRI图像。这些图像包含丰富的结构信息,边缘是这些结构的重要表现。准确的边缘检测不仅有助于病理区域的精确定位,而且还为后续图像分析和诊断提供了强大的支持。因此,轻量、快速和高性能的边缘检测模型在实际部署场景中面临着越来越复杂的挑战。
未来先知
2024/08/14
3090
参数极少、速度极快 , UHNet 轻量级边缘检测技术 !
轮廓检测论文解读 | 整体嵌套边缘检测HED | CVPR | 2015
轮廓检测,对我这样的初学者而言,与语义分割类似。分割任务是什么我就不再赘述了,轮廓检测则是完成这样的一个任务:
机器学习炼丹术
2020/12/16
1.3K0
边缘检测论文笔记
摘要:这篇论文提出了一种基于FCNN和深度监督网络的新的边缘检测算法HED,它解决了两个重要的问题,1)整体图片的训练和预测,2)多尺度多层级的特征学习。HED能实现端到端的训练,输入一个图片,输出对应的边缘图片。
用户1332428
2018/07/30
9710
边缘检测论文笔记
汇总 | OpenCV4中的非典型深度学习模型
前面给大家分别汇总了OpenCV中支持的图像分类与对象检测模型,视觉视觉任务除了分类与检测还有很多其他任务,这里我们就来OpenCV中支持的非分类与检测的视觉模型汇总一下。注意一点,汇总支持的模型都是OpenCV4.4 Github上已经提供的,事实上除了官方的提供的模型,读者还可以自己探索更多非官方模型支持。这里的汇总模型主要来自OpenCV社区官方测试过的。
OpenCV学堂
2020/09/22
8290
汇总 | OpenCV4中的非典型深度学习模型
全卷积网络:从图像级理解到像素级理解
卷积神经网络(CNN):图像级语义理解的利器 自2012年AlexNet提出并刷新了当年ImageNet物体分类竞赛的世界纪录以来,CNN在物体分类、人脸识别、图像检索等方面已经取得了令人瞩目的成就。通常CNN网络在卷积层之后会接上若干个全连接层, 将卷积层产生的特征图(feature map)映射成一个固定长度的特征向量。 以AlexNet为代表的经典CNN结构适合于图像级的分类和回归任务,因为它们最后都期望得到整个输入图像的一个数值描述, 比如AlexNet的ImageNet模型输出一个1000
智能算法
2018/04/02
2.1K0
全卷积网络:从图像级理解到像素级理解
轮廓检测论文解读 | Richer Convolutional Features| CVPR | 2017
孪生网络入门(下) Siamese Net分类服装MNIST数据集(pytorch)
机器学习炼丹术
2021/01/05
8680
轮廓检测论文解读 | Richer Convolutional Features| CVPR | 2017
深度学习视觉研究综述
近年来,深度学习在计算机视觉各个领域中的应用成效显著,新的深度学习方法和深度神经网络模型不断涌现,算法性能被不断刷新。
算法进阶
2023/10/10
8010
深度学习视觉研究综述
图片修补 EdgeConnect 论文的阅读与翻译:生成边缘轮廓先验,再填补缺失内容
本文将要介绍的论文就是:EdgeConnect: Generative Image Inpainting with Adversarial Edge Learning,因为知乎在(2019-02-02)前,缺少详细介绍这篇论文的文章,而我最近需要复现它,所以顺便在这里对这篇论文进行介绍,毕竟还是中文母语阅读起来方便,关于翻译或者算法的指正与争议。
汀丶人工智能
2023/10/11
6260
图片修补 EdgeConnect 论文的阅读与翻译:生成边缘轮廓先验,再填补缺失内容
更丰富的卷积特征用于目标边缘检测
【导读】边缘检测是计算机视觉中的一个基本问题。近年来,卷积神经网络(CNNs)的出现极大地推动了这一领域的发展。现有的方法采用特定的深层CNN,但由于尺度和纵横比的变化,可能无法捕捉到复杂的数据结构。今天分享的paper提出了一种利用更丰富的卷积特征(RCF)来精确的边缘检测方法。
计算机视觉研究院
2019/07/19
1K0
基于 TensorFlow 在手机端实现文档检测
手机端运行卷积神经网络的一次实践 — 基于 TensorFlow 和 OpenCV 实现文档检测功能 1. 前言 本文不是神经网络或机器学习的入门教学,而是通过一个真实的产品案例,展示了在手机客户端上运行一个神经网络的关键技术点 在卷积神经网络适用的领域里,已经出现了一些很经典的图像分类网络,比如 VGG16/VGG19,Inception v1-v4 Net,ResNet 等,这些分类网络通常又都可以作为其他算法中的基础网络结构,尤其是 VGG 网络,被很多其他的算法借鉴,本文也会使用 VGG16 的基础
腾讯Bugly
2018/03/23
1.8K0
直观理解深度学习卷积部分
近几年随着功能强大的深度学习框架的出现,在深度学习模型中搭建卷积神经网络变得十分容易,甚至只需要一行代码就可以完成。
AI研习社
2018/07/26
5810
直观理解深度学习卷积部分
深度学习中的图像分割:方法和应用
基于人工智能和深度学习方法的现代计算机视觉技术在过去10年里取得了显著进展。如今,它被用于图像分类、人脸识别、图像中物体的识别、视频分析和分类以及机器人和自动驾驶车辆的图像处理等应用上。
OpenCV学堂
2020/12/08
3.4K0
深度学习中的图像分割:方法和应用
CP-UNet:基于轮廓的医学超声图像分割概率模型 !
超声成像广泛应用于各种疾病的诊断,由于其低成本、简单操作和非侵入性,因此在医学超声图像的病变分割中,基于深度学习的分割方法得到了应用。然而,由于超声图像中存在不均匀的病变区域分布、斑点噪声和成像伪迹,这增加了分割任务的难度。如图1(b)(c)(d)所示的病变与正常组织之间的结构边界线模糊,以及如图1(e)(f)所示的病变形状和纹理的不规则变化,都导致了轮廓模糊。这些因素共同影响了分割的准确性。
未来先知
2024/12/23
2970
CP-UNet:基于轮廓的医学超声图像分割概率模型 !
专栏 | 手机端运行卷积神经网络实践:基于TensorFlow和OpenCV实现文档检测功能
机器之心投稿 作者:腾讯 iOS 客户端高级工程师冯牮 本文作者通过一个真实的产品案例,展示了在手机客户端上运行一个神经网络的关键技术点。 前言 本文不是神经网络或机器学习的入门教学,而是通过一个真实的产品案例,展示了在手机客户端上运行一个神经网络的关键技术点。 在卷积神经网络适用的领域里,已经出现了一些很经典的图像分类网络,比如 VGG16/VGG19,Inception v1-v4 Net,ResNet 等,这些分类网络通常又都可以作为其他算法中的基础网络结构,尤其是 VGG 网络,被很多其他的算法借鉴
机器之心
2018/05/07
1.4K0
专栏 | 手机端运行卷积神经网络实践:基于TensorFlow和OpenCV实现文档检测功能
OpenCV4中调用HED边缘检测算法
图像边缘检测是图像处理与计算机视觉领域最基础也是最重要的任务之一,早期的Canny边缘检测到现在还在使用,但是Canny边缘检测过于依赖人工阈值的设定,无法在通用场景下工作,如何找到一个在自然场景下可以正确工作的边缘检测器,答案是使用CNN。2015年的时候有人提出了基于卷积神经网络的边缘检测算法HED全称为《Holistically-Nested Edge Detection》, 先看一下HED与Canny的效果对比:
OpenCV学堂
2019/06/14
4.4K1
OpenCV4中调用HED边缘检测算法
在OpenCV中基于深度学习的边缘检测
分析了Canny的优劣,并给出了OpenCV使用深度学习做边缘检测的流程,文末有代码链接。
AI算法与图像处理
2021/01/20
1.9K0
在OpenCV中基于深度学习的边缘检测
深度学习的卷积
近年来,随着一些强大、通用的深度学习框架相继出现,把卷积层添加进深度学习模型也成了可能。这个过程很简单,只需一行代码就能实现。但是,你真的理解“卷积”是什么吗?当初学者第一次接触这个词时,看到堆叠在一起的卷积、核、通道等术语,他们往往会感到困惑。作为一个概念,“卷积”这个词本身就是复杂、多层次的。
bye
2020/12/29
3630
深度学习图语义分割的综述
图像分割是计算机视觉和机器学习领域发展最快的领域之一,包括分类、分类与定位、目标检测、语义分割、实例分割和Panoptic分割。
算法进阶
2023/12/26
6790
深度学习图语义分割的综述
AI降维打击人类画家,文生图引入ControlNet,深度、边缘信息全能复用
来源:机器之心 本文约2000字,建议阅读5分钟 本文提出了一种端到端的神经网络架构 ControlNet,该架构可以通过添加额外条件来控制扩散模型。 通过「添加额外条件」来控制扩散模型,斯坦福大学最新的一项研究让图生图效果更上了一层楼。 随着大型文本 - 图像模型的出现,生成一幅吸引人的图像已经变得非常简单,用户需要做的就是动动手指输入简单的 prompt 就可以。通过一系列操作得到图像后,我们不免又会产生这样几个问题:基于 prompt 生成的图像能够满足我们的要求吗?我们应该构建怎样的架构来处理用户提
数据派THU
2023/03/29
4030
AI降维打击人类画家,文生图引入ControlNet,深度、边缘信息全能复用
推荐阅读
相关推荐
HED 和 RCF 图像边缘检测
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档