OpenCv基础_四
Harris角点检测
- 理解
内部点:蓝框所示,无论滑动窗口水平滑动还是竖直滑动,框内像素值都不会发生大的变化
边界点:黑框所示,滑动窗口沿着某一个方向滑动框内像素点不会发生大的改变,但是沿着另一个方向滑动,就会发生大的改变
角点:红框所示,滑动窗口沿着两个方向滑动,框内像素点都会发生大的变化
两个方向上的特性值分别为λ1,λ2,
当 λ1,λ2,都很小, |R|也很小时,表示是内部区域
当 λ1,λ2,一个大一个小,R<0时,表示是边界区域
当 λ1,λ2,都很大,R也很大时,表示是角点
- 函数
Open 中的函数 cv2.cornerHarris() 可以用来进行角点检测
参数
• img - 数据类型为 float32 的输入图像。
• blockSize - 角点检测中要考虑的领域大小。
• ksize - Sobel 求导中使用的窗口大小
• k - Harris 角点检测方程中的自由参数,取值参数为 [0,04,0.06].返回值
R值构成的灰度图像,灰度图像坐标会与原图像对应,R值就是角点分数当R值很大的时候 就可以认为这个点是一个角点
- 步骤
1.图片转化为灰度图
2. cv2.cornerHarris() 处理的是float32,注意类型转换
3.利用 cv2.cornerHarris()得到R集合
4.把R中大于某个阈值的判定为角点,
img[dst>0.01*dst.max()] = [0,0,255]
这里R矩阵是一个很大的值,取里面最大的R,只要dst里面的值大于0.01R的最大值
那么此时这个dst的R值也是很大的 可以判定他为角点import cv2
import numpy as np def cv_show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows() img = cv2.imread('chess.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]
cv_show('img',img)
OpenCv基础_四的更多相关文章
- OpenCv基础_三
轮廓检测 图像金字塔 上采样,图像变大一倍,矩阵用0填充 img = cv2.imread('1,jpg') cv_show('img',img) up = cv2.pyrUp(img) cv_sho ...
- OpenCV基础_二
阈值和平滑处理 cv2.threshold()二值化函数 ret,thresh = cv2.threshold(src, thresh, maxval, type[, dst]) 参数 src:所要进 ...
- OpenCv基础_一
图片的读取和展示 import cv2 img = cv2.imread('1.jpg') cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWin ...
- Android基础测试题(四)
看了前两道题大家有没有发现,测试题少了(一),大家猜猜测试题(一)是什么? Android基础测试题(四): 需求: 建一个方法,格式化输出2016-11-14 10:15:26格式的当前时间,然后截 ...
- Bootstrap<基础十四> 按钮下拉菜单
使用 Bootstrap class 向按钮添加下拉菜单.如需向按钮添加下拉菜单,只需要简单地在在一个 .btn-group 中放置按钮和下拉菜单即可.也可以使用 <span class=&qu ...
- MySQL基础(四)——索引
MySQL基础(四)--索引
- Python 基础语法(四)
Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...
- Linux操作系统基础(四)保护模式内存管理(2)【转】
转自:http://blog.csdn.net/rosetta/article/details/8570681 Linux操作系统基础(四)保护模式内存管理(2) 转载请注明出处:http://blo ...
- Java语言基础(四)
Java语言基础(四) 一.基本数据类型(8) byte 8位 使用较少,一般用于网络传输: -128-+127 short 16位 不常用 -32768-+32767 int 32位 常用 ...
随机推荐
- NoSQL之Redis配置与优化
NoSQL之Redis配置与优化 目录 NoSQL之Redis配置与优化 一.关系数据库和非关系数据库 1. 关系型数据库 2. 非关系型数据库 3. 非关系型数据库产生背景 4. 关系型数据库和非关 ...
- 精简的言语讲述技术人,必须掌握基础性IT知识技能,第一篇
前言 此系列将以精简的言语讲述技术人,必须掌握基础性IT知识技能,请持续关注,希望给大家都是一些精简的干货. 第一部分:必须掌握的设计模式的6大基本原则 23个设计模式,都是从这六大设计模式中演化而来 ...
- Spring Druid多数据源配置
SpringBoot 多数据源配置 如果需要在一个应用中使用多个数据源,应当如何实现呢,在Spring配置MyBatis中,我们可以看到以下的代码 <!-- mybatis 的SqlSessio ...
- 抓取并解密HTTPS流量
WireShark Wireshark解密TLS数据流,从网上已有资料来看,主要是两种方式:一是服务端私钥直接解密,二是使用SSLKEYLOGFILE获取握手过程中的会话密钥信息进行解密. 这 ...
- 基于containerd二进制部署k8s-v1.23.3
文章目录 前言 k8s 组件 环境准备 创建目录 关闭防火墙 关闭selinux 关闭swap 开启内核模块 分发到所有节点 启用systemd自动加载模块服务 配置系统参数 分发到所有节点 加载系统 ...
- suse 12 利用缓存创建本地源供内网服务使用
文章目录 服务端获取 添加源 刷新源 清除缓存 安装软件 获取rpm包 客户端测试 zypper --help 前言: 其实,咱也不知道为啥写了这篇博客,咱就是想学一学suse,咱也不会,咱也只能学, ...
- 使用MyBatis拦截器后,摸鱼时间又长了。🐟
场景 在后端服务开发时,现在很流行的框架组合就是SSM(SpringBoot + Spring + MyBatis),在我们进行一些业务系统开发时,会有很多的业务数据表,而表中的信息从新插入开始,整个 ...
- 分析HTTP请求以降低HTTP走私攻击HTTP数据接收不同步攻击的风险
写在前面的话 HTTP/1.1自1991年至2014年,已经走过了一段很长的发展历程: HTTP/0.9– 1991 HTTP/1.0– 1996 HTTP/1.1 RFC 2068– 1997 RF ...
- springboot页面国际化
引入依赖pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...
- 关于python的turtle详解(转载)
详解文章见turtle--海龟绘图--python3.10.2文档