lecture4特征提取-七月在线-cv
霍夫变换
http://blog.csdn.net/sudohello/article/details/51335237
http://blog.csdn.net/glouds/article/details/39002113
在参数空间相交于同一点的所有直线,在图像坐标空间都有共线的点与之对应。根据这个特性,给定图像坐标空间的一些边缘点,就可以通过Hough变换确定连接这些点的直线方程。
参数空间a−b上的细分程度决定了最终找到直线上点的共线精度。上述的二维累加数组A也被称为Hough矩阵。
参数空间中对应各个间断点的曲线或者曲面不能相交,则说明间断点不符合某已知曲线。
在xy空间中,垂直于x轴的直线斜率无穷大,所以在坐标空间无法表示---极坐标
ppt中---
点越亮,则表示原图中线越长,因为投票的点越多
opencv中分为 传统hough变换、概率hough变换(多少长度的线段时,将两段视为一段)、多尺度霍夫变换(不同精度)
角点检测
https://www.cnblogs.com/polly333/p/5416172.html
M为梯度的协方差矩阵 ,在实际应用中为了能够应用更好的编程,定义了角点响应函数R,通过判定R大小来判断像素是否为角点。R取决于M的特征值,对于角点|R|很大,平坦的区域|R|很小,边缘的R为负值。
ppt----
bloc斑点 --如树上的小斑点 海森矩阵、高斯拉普拉斯算子
corner角点--如拐点
M的计算---
w可以表示各个方向上灰度的变化率
M-协方差矩阵-两个特征值-角点位置,两个值都很大
角点响应函数R-在浮点计算很弱时,计算很耗时,这样不需要把两个特征值都算出来
由两张图片的对比可知,无论位置、光强等如何,都可以将角点检测出来
SIFT
http://blog.csdn.net/zddblog/article/details/7521424
关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。
SIFT算法是在不同的尺度空间上查找关键点,而尺度空间的获取需要使用高斯模糊来实现,Lindeberg等人已证明高斯卷积核是实现尺度变换的唯一变换核,并且是唯一的线性核。
高斯模糊是一种图像滤波器,它使用正态分布(高斯函数)计算模糊模板,并使用该模板与原图像做卷积运算,达到模糊图像的目的。
高斯函数的可分离性是指使用二维矩阵变换得到的效果也可以通过在水平方向进行一维高斯矩阵变换加上竖直方向的一维高斯矩阵变换得到。
ppt----
Automatic Scale Selection中式子的意思是:需要定义一种函数,使得在不同尺度下图像同一位置的响应相同
scale space尺度空间-相当于从外太空到近距离不断拉近距离:高斯核是尺度变换唯一的核,图像-尺度不断变大,越小越细腻,越大越模糊模糊的越粗糙--相当于模拟人体看物体
使用opencv的sift来检测某一尺度上对DOG(高斯差分)的响应值-跟图像越相似,响应值越高
DOG是LOG的近似
scale space in SIFT的过程--原图像用不同的均方差的值对应的高斯核进行高斯模糊,再分别2倍降采样再高斯模糊,构建金字塔;DOG就是高斯模糊后再高斯模糊来做特征点检测,不包括做降采样;SIFT使用了图像金字塔,SIFT是DOG的一种应用,使用了下采样
computation in gaussian scale pyramid--octave层数是由图像大小决定的 log512/log2 - 2,减去2是为了往后退两层,要不然最后一层是1*1,来做高斯模糊是没有意义的
把前一次的尺度减掉,算出新的sigma值--每一幅是用前一幅做的高斯模糊
https://www.cnblogs.com/JiePro/p/sift_1.html
s=3---用前一个octave中的倒数第三幅图像生成下一octave中的第一幅图像- 不同层且下采样是为了保证空间的连续性
DOG定义的是五个尺度,所以一个octive需要六个图像-因为是要做差,6-1=5
DOG空间为什么是连续的?
添加高斯项,是指成为连续的-所以添加ksigma的平方。。
SURF:海森矩阵进行特征提取+高斯滤波 -》 box filter来简化了运算
sift是改变图像大小,滤波模板没变;SURF是图像没变,改变了filter大小,没有构建金字塔
提到特征点,就要确定尺度范围--60度范围内,对梯度进行直方图统计,最大的作为主方向
每个区域四个描述子-共16*4个-64维的特征向量
lecture4特征提取-七月在线-cv的更多相关文章
- 第六课cnn和迁移学习-七月在线-cv
ppt 参数共享终于把拿一点想清楚啦,一定要知道w是矩阵! 在传统BP中,w前后连接时是all的,辣么多w使得你给我多少图片我就能记住多少信息-->导致过拟合-->cnn当中权值共享 激励 ...
- lecture7图像检索-七月在线-cv
http://blog.csdn.net/u014568921/article/details/52518587 图像相似性搜索的原理 BOW 原理及代码解析 Bag Of Visual Words ...
- 七月在线爬虫班学习笔记(五)——scrapy spider的几种爬取方式
第五课主要内容有: Scrapy框架结构,组件及工作方式 单页爬取-julyedu.com 拼URL爬取-博客园 循环下页方式爬取-toscrape.com Scrapy项目相关命令-QQ新闻 1.S ...
- 七月在线爬虫班学习笔记(六)——scrapy爬虫整体示例
第六课主要内容: 爬豆瓣文本例程 douban 图片例程 douban_imgs 1.爬豆瓣文本例程 douban 目录结构 douban --douban --spiders --__init__. ...
- 七月在线爬虫班学习笔记(二)——Python基本语法及面向对象
第二课主要内容如下: 代码格式 基本语法 关键字 循环判断 函数 容器 面向对象 文件读写 多线程 错误处理 代码格式 syntax基本语法 a = 1234 print(a) a = 'abcd' ...
- lecture1-Word2vec实战班-七月在线nlp
nltk的全称是natural language toolkit,是一套基于python的自然语言处理工具集.自带语料库.词性分类库.自带分类分词等功能.强大社区支持.很多简单版wrapper 文本处 ...
- 牛客网/LeetCode/七月在线/HelloWorld114
除了知乎,还有这些网站与offer/内推/秋招/春招相关. 其中HelloWorld114更是囊括许多IT知识. 当然,我们可以拓宽思考的维度,既然课堂上的老师讲不好,我们可以自己找资源啊= => ...
- 七月在线spark教程
链接:https://pan.baidu.com/s/1Ir5GMuDqJQBmSavHC-hDgQ 提取码:qd2e
- python多种格式数据加载、处理与存储
多种格式数据加载.处理与存储 实际的场景中,我们会在不同的地方遇到各种不同的数据格式(比如大家熟悉的csv与txt,比如网页HTML格式,比如XML格式),我们来一起看看python如何和这些格式的数 ...
随机推荐
- 系统相关的信息模块: import sys
系统相关的信息模块: import sys sys.argv 是一个 list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的 ...
- JAVA工程师面试常见问题集锦
集锦一: 一.面试题基础总结 1. JVM结构原理.GC工作机制详解 答:具体参照:JVM结构.GC工作机制详解 ,说到GC,记住两点:1.GC是负责回收所有无任何引用对象的内存空间. 注意: ...
- py requests.post2
# -*- coding: utf-8 -*-import jsonimport requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 6 ...
- C/C++ 全局变量的访问
#include <iostream> using namespace std; ; int main(int argc, char **argv) { ; std::cout <& ...
- 蓝桥杯—BASIC-27 2n皇后问题(DFS)
问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后, 使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行. 同一列或 ...
- 【Java算法】冒泡排序
package suanfa; public class Maopao { public static void main(String[] args) { // TODO Auto-generate ...
- 3.python函数编程-reduce函数
reduce将所有数据压缩到一起,得到一个最终的结果. 在python2中可以直接使用,在python3中需要导入 from functools import reduce 自己实现代码: num = ...
- Java日期时间,以及相互转换
Java日期时间,以及相互转化 package com.study.string; import java.text.ParseException; import java.text.SimpleDa ...
- Linux学习 :多线程编程
1.Linux进程与线程() 进程:通过fork创建子进程与创建线程之间是有区别的:fork创建出该进程的一份拷贝,创建时额外申请了新的内存空间以及存储代码段.数据段.BSS段.堆.栈空间, ...
- Java 利用poi生成excel表格
所需jar包,如下所示 写一个excel工具类 ExcelUtils .java import java.lang.reflect.Field; import java.util.Iterator; ...