通过Opencv进行角点检测

目录

引入

介绍

①使用的主要函数介绍

②实际例子解释

③自相似性是什么?


引入

我们想要获取图片上的角点,就要用到我们的harris角点检测

介绍

①使用的主要函数介绍

cv2.cornerHarris()

  • img: 数据类型为 float32 的入图像

不是float32的数据要使用,np.float32()转换为float32

  • blockSize: 角点检测中指定区域的大小

指定检测框的区域大小

  • ksize: Sobel求导中使用的窗口大小 一般设置为3即可,即表示为3x3大小的

Sobel求导中使用的窗口大小就是使用sobel算子进行边缘检测那个,是这样的:

sobel算子 x 原始图像 = 边缘图像

  • k:判断时候的比例系数 设为 0.04~0.06都可以

②实际例子解释

我们对如下图片进行角点检测

代码:

python 复制代码
import cv2
import numpy as np

img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# gray = np.float32(gray)
dst = cv2.cornerHarris(gray, 2, 3, 0.04)

img[dst>0.01*dst.max()]=[0,0,255]
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

可能疑惑点解释:

imgdst\>0.01\*dst.max()=0,0,255

整体过程(主要在于自相似性):

dst为我们计算完的所有点,将它和dst里面最大值的0.01倍进行比较(因为最大值肯定是个角点自相似性),

如果大于了表明可能是个角点,我们把它的颜色设置为0,0,255红色画出来

结果


③自相似性是什么?

自相似性公式:

总体来说就是判断差异大不大,和边界检测有点类似:

I(u,v) - I(u + x, v + y) 的差值大的话,那他就是个角点

相关推荐
调接口的阿光8 小时前
调用对话接口时输出被截断怎么办:先看 finish_reason,再决定是续写一次、缩小范围,还是换成更短的格式(Python)
人工智能·python
东鸿电子Eastron8 小时前
工厂节能降本落地指南:从精准能源计量搭建数字化管理基础
大数据·人工智能·能源·智能电表·能耗管理
师夷长技以自愈8 小时前
手搓 AI Agent 第 6 篇:先别动刀——Plan Mode 让 AI 报完方案才动手
人工智能
Sincerelyplz8 小时前
Voice Agent 实践与落地(二):从唤醒到多轮对话,拆解实时语音链路
人工智能
guuguo8 小时前
Gemini 4 屠榜后连夜切到 Antigravity,顺手用一行命令搞定全中文界面与思考
人工智能·开源·github
码云社区8 小时前
能碳管理系统开发要关注什么?能源数据、统计口径与AI分析的衔接
java·人工智能·ai·能源·能源管理系统·能碳管理系统·能碳管理系统源码
科研小刘带你玩学术8 小时前
【科研快讯】OpenAI推出ChatGPT Wallet:AI Agent不再只会推荐商品,还能替用户完成支付
人工智能·数字经济·智能体·科技前沿·aiagent·ai支付·智能商务
飞猫的边缘AI8 小时前
SoC和SoC FPGA的野心与市场渗透
人工智能·科技·soc芯片·边缘ai
泯泷8 小时前
AI 社交的真问题:助理拥有“我”,平台拥有“别人”
人工智能·llm·agent
@嵌入式扫地僧8 小时前
边缘 AI 面试实战:模型剪枝核心方法
人工智能·结构化剪枝·模型剪枝·边缘 ai·嵌入式 ai 部署