一. Harris角点
1.Harris角点原理
角点原理来源于人对角点的感性判断,即图像在各个方向灰度有明显变化。算法的核心是利用局部窗口在图像上进行移动判断灰度发生较大的变化。

2.Harris算法数学模型
根据算法思想,构建数学模型,计算移动窗口的的灰度差值


上图中W函数表示窗口函数,M矩阵为偏导数矩阵。对于矩阵可以进行对称矩阵的变化,假设利用两个特征值进行替代,其几何含义类似下图中的表达。在几何

模型中通过判断两个特征值的大小,来判定像素的属性。

M为梯度的协方差矩阵 ,在实际应用中为了能够应用更好的编程,定义了角点响应函数R,通过判定R大小来判断像素是否为角点。

R取决于M的特征值,对于角点|R|很大,平坦的区域|R|很小,边缘的R为负值

3.算法原理
利用水平,竖直差分算子对图像的每个像素进行滤波以求得Ix,Iy,进而求得M中的四个元素的值。

4.实现代码截图:


5.代码分析:
导入图片后使用compute_harris_response(im) 函数,返回像素值为 Harris 响应函数值的一幅图像。之后,可以从这幅图像中挑选出需要的信息。然后,选取像素值高于阈值的所有图像点;再加上额外的限制,即角点之间的间隔必须大于设定的最小距离。这种方法会产生很好的角点检测结果。为了实现该算法,我们获取所有的候选像素点,以角点响应值递减的顺序排序,然后将距离已标记为角点位置过近的区域从候选像素点中删除。这里的实现使用get_harris_points() 函数。

函数的意义:
computer_harris_response:在一幅灰度图像中,对每一个像素计算harris角点检测器响应函数。
get_harris_points:从一副harris响应图像中返回角点。
plot_harris_points:绘制图像中检测到的角点

6.实验结果:
阈值为0.01、0.05和0.1检测出的角点 实验结果:
正面:


侧面:


近距离:


明亮光下:

7.结果分析:
阈值决定检测点数量
增大阈值的值,将减小角点响应值,降低角点检测的灵性,减少被检测角点的数量;减小阈值,将增大角点响应值,增加角点检测的灵敏性,增加被检测角点的数量。
因此可以通过设置不同的阈值在不同的环境条件下得到更加准确的结果。

python 角点检测相关推荐

  1. python 角点检测_python 实现Harris角点检测算法

    算法流程: 将图像转换为灰度图像 利用Sobel滤波器求出 海森矩阵 (Hessian matrix) : 将高斯滤波器分别作用于Ix².Iy².IxIy 计算每个像素的 R= det(H) - k( ...

  2. python 角点检测_opencv python Shi-Tomasi角点检测

    cv2.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, ...

  3. python 角点检测_python实现Harris角点检测算法

    算法流程: 将图像转换为灰度图像 利用Sobel滤波器求出 海森矩阵 (Hessian matrix) : 将高斯滤波器分别作用于Ix².Iy².IxIy 计算每个像素的 R= det(H) - k( ...

  4. python 正方形去畸变_opencv 角点检测+相机标定+去畸变+重投影误差计算

    https://blog.csdn.net/u010128736/article/details/52875137 https://blog.csdn.net/h532600610/article/d ...

  5. harris角点检测_角点检测(2) - harris算子 - 理论与Python代码

    数字图像,图像=矩阵,[m*n]从[0,255]的灰度值 角点检测:物体边缘的拐点 ->应用:图像匹配与检索.图像物体形变恢复(摄像机标定).三维重建 Harris角点检测(早期,原理简单,视频 ...

  6. cv2.cornerHarris()详解 python+OpenCV 中的 Harris 角点检测

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8763369.html 参考文献----------OpenCV-Python-Toturial ...

  7. Python+OpenCV:图像快速角点检测算法(FAST Algorithm for Corner Detection)

    Python+OpenCV:图像快速角点检测算法(FAST Algorithm for Corner Detection) 理论 Feature Detection using FAST Select ...

  8. Python+OpenCV:图像Harris角点检测(Harris Corner Detection)

    Python+OpenCV:图像Harris角点检测(Harris Corner Detection) 理论 corners are regions in the image with large v ...

  9. Shi-tomasi角点检测python实现及基于opencv实现 (角点检测、非极大值抑制)

    写在前面: 已经是七月中旬,黄宁然,你依然在这里. 参考文献镇楼: [1]龚思宇宙,基于平面模板的摄像机标定及相关技术研究 [2]汪洋,扫地机器人定位算法设计与嵌入式系统实现 [3]Denny#,[o ...

最新文章

  1. 内推 58 人拿到微软 offer!这位大佬有多强?
  2. 在ML中缺乏数据可是个大问题,亲测有效的5种方法帮您解决
  3. 皮一皮:多少人的爱情在昨天就像他一样...
  4. shell无上传cmd等exe文件权限解决办法
  5. SQLAlchemy 使用经验
  6. Entity Framework 5.0 Code First全面学习
  7. XCTF_Web_新手练习区:weak_auth
  8. Nginx笔记-关于nginx.conf中proxy_pass中末尾不加/的坑
  9. 做了几年Java开发,你必须重视这一点
  10. JavaScript核心参考
  11. testbed代码审查信息提取
  12. Sketch for Mac(矢量绘图工具)
  13. GPS 入门 5 —— 定位误差产生的原因和差分定位原理 (转)
  14. 聚划算创意新零售,这个“加油站”不加油只加奶?
  15. android 下划线跟文字一样长,TextView 下划线 自动根据文字内容改变长度
  16. 如何把docx变为ass_电影字幕转Word教程
  17. C++ Report:应用设计模式去简化信号控制
  18. android wifi传图片,「教程」将Mac电脑上的照片无线传到安卓手机上
  19. JS函数curry(柯里化)
  20. Windows Sever2016磁盘分区

热门文章

  1. 金山软件重组网游管理团队 五虎将首次公开亮相
  2. JQuery效果——如何切换图片颜色
  3. linux 修改文件明,linux修改文件名你肯定不知道可以这样操作
  4. 「UnityShader笔记」08. 基础卡通渲染—渐变纹理
  5. 3D图形和网络编程的一次实践——昆特牌Online
  6. Java 面向对象 抽象类与接口
  7. webpack-dev-server --inline --progress --config build/webpack.dev.conf.js
  8. java ide 的优劣_Eclipse和IntelliJ IDEA到底哪个更好?
  9. ORA-942 SP2-0611
  10. python工程师是什么专业-python全栈工程师是什么(需要会哪些东西)