python opencv3 特征提取与描述 DoG SIFT hessian surf
git:https://github.com/linyi0604/Computer-Vision
DoG和SIFT特征提取与描述
# coding:utf-8 import cv2 # 读取图片
img = cv2.imread("../data/walez1.jpg")
# 转为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 创建一个sift对象 并计算灰度图像
sift = cv2.xfeatures2d.SIFT_create()
keypoints, descriptor = sift.detectAndCompute(gray, None)
"""
sift对象会使用DoG检测关键点,对关键点周围的区域计算向量特征,检测并计算
返回 关键点和描述符
关键点是点的列表
描述符是检测到的特征的局部区域图像列表 关键点的属性:
pt: 点的x y坐标
size: 表示特征的直径
angle: 特征方向
response: 关键点的强度
octave: 特征所在金字塔层级
算法进行迭代的时候, 作为参数的图像尺寸和相邻像素会发生变化
octave属性表示检测到关键点所在的层级
ID: 检测到关键点的ID """
# 在图像上绘制关键点
# DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS表示对每个关键点画出圆圈和方向
img = cv2.drawKeypoints(image=img, outImage=img, keypoints=keypoints,
flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS,
color=(51, 163, 236)) cv2.imshow("sift_keypoints", img)
cv2.waitKey()
cv2.destroyAllWindows()
hessian 与SURF特征提取与匹配
# coding:utf-8
import cv2
img = cv2.imread("../data/walez1.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
surf = cv2.xfeatures2d.SURF_create(8000)
"""
创建surf对象,设置阈值,阈值越高检测到的特征就越少,
通过调整阈值得到合适的关键点
"""
# 检测图像中的关键点和描述
keypoints, descriptor = surf.detectAndCompute(gray, None)
"""
sift对象会使用DoG检测关键点,对关键点周围的区域计算向量特征,检测并计算
返回 关键点和描述符
关键点是点的列表
描述符是检测到的特征的局部区域图像列表
关键点的属性:
pt: 点的x y坐标
size: 表示特征的直径
angle: 特征方向
response: 关键点的强度
octave: 特征所在金字塔层级
算法进行迭代的时候, 作为参数的图像尺寸和相邻像素会发生变化
octave属性表示检测到关键点所在的层级
ID: 检测到关键点的ID
"""
# 将关键点画在原图像上
cv2.drawKeypoints(image=img, outImage=img,
keypoints=keypoints,flags=4,
color=(51, 163, 236))
cv2.imshow("surf_detected", img)
cv2.waitKey()
cv2.destroyAllWindows()

python opencv3 特征提取与描述 DoG SIFT hessian surf的更多相关文章
- 在OpenCV3.1.0中使用SIFT,SURF算法
写在前边: 1.我使用的是python2.7 + OpenCV3.1.0 2.OpenCV3.0.0+的文档有很大问题,很多文档写的还是OpenCV2.0+, OpenCV3.0+根本用不了,其中有一 ...
- [OpenCV-Python] OpenCV 中图像特征提取与描述 部分 V (一)
部分 V图像特征提取与描述 OpenCV-Python 中文教程(搬运)目录 29 理解图像特征 目标本节我会试着帮你理解什么是图像特征,为什么图像特征很重要,为什么角点很重要等.29.1 解释 我相 ...
- sift、surf、orb 特征提取及最优特征点匹配
目录 sift sift特征简介 sift特征提取步骤 surf surf特征简介 surf特征提取步骤 orb orb特征简介 orb特征提取算法 代码实现 特征提取 特征匹配 附录 sift si ...
- 【CV现状-3.3】特征提取与描述
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- [OpenCV-Python] OpenCV 中图像特征提取与描述 部分 V (二)
部分 V图像特征提取与描述 OpenCV-Python 中文教程(搬运)目录 34 角点检测的 FAST 算法 目标 • 理解 FAST 算法的基础 • 使用 OpenCV 中的 FAST 算法相关函 ...
- 特征描述算子-sift
特征描述算子-sift http://boche.github.io/download/sift/Introduction%20to%20SIFT.pdf
- Computer Vision_33_SIFT:ORB_An efficient alternative to SIFT or SURF——2012
此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...
- Opencv Sift和Surf特征实现图像无缝拼接生成全景图像
Sift和Surf算法实现两幅图像拼接的过程是一样的,主要分为4大部分: 1. 特征点提取和描述 2. 特征点配对,找到两幅图像中匹配点的位置 3. 通过配对点,生成变换矩阵,并对图像1应用变换矩阵生 ...
- python opencv3添加opencv-contrib
不需要编译或其他操作,只需一句话安装第三方库利用sift等特征提取算法: sudo pip3 install opencv-contrib-python 附网站:https://pypi.python ...
随机推荐
- JavaScript的基本介绍
JavaScript入门介绍 输出语句:document.write() 1.执行顺序:从上到下,每一天语句是要加分号的,如果不加的话,浏览器会默认帮你自动添加,分号. 2.注释:一行注释就是 ...
- shell脚本-监控及邮件提醒
首先写一个邮件提醒python文件 #!/usr/bin/python # -*- coding: UTF-8 -*- import sys import smtplib import email.m ...
- Memcached与KVDB的区别
Memcached将数据存储在内存中,数据易丢失,不适合对数据进行长期存储. KVDB则是将数据存储在磁盘中,数据安全性级别高,不易丢失.
- 添加 MySql 服务、Tomcat服务到windows服务中
添加 MySql 服务到windows服务中: cmd --> F:\MySql\MySqlServer5.1\bin\mysqld --install 这样用默认的 MySQL 为名称添加一个 ...
- HTML5之2D物理引擎 Box2D for javascript Games 系列 第一部分
我要的是能在H5页面上跑的javascript版的Box2D啊!!! 最近想学习Javascript版本的Box2D JS物理引擎,无奈搜了半天也没找到相对比较系统的资料 官方网站也只是简单的介绍,A ...
- C. Connect Three(构造)
题目链接:http://codeforces.com/contest/1087/problem/C 题目大意:给你三个点的坐标,让你用尽可能少的方块,让这三个点连起来. 具体思路: 我们先对这三个点进 ...
- console.dir() 与 console.dirxml() 的使用
在调试JavaScript程序时,有时需要dump某些对象的详细信息.通过手工编写JavaScript代码可以完成这一工作:针对对象的属性进行循环,将循环到的每一个属性值打印出来:可见,这一过程是比较 ...
- 对于Json的认识
Json简介 1. JSON 是什么 JSON,全称是 JavaScript Object Notation,即 JavaScript 对象标记法. JSON 是一种轻量级(Light-Weigh ...
- Sublime2编译Python程序EOFError:EOF when reading a line解决方法【转】
在Sublime2中编译运行Python文件时,如果代码中包含用户输入的函数时(eg. raw_input()),Ctrl+b编译运行之后会提示以下错误: 解决方法:安装SublimeREPL打开Su ...
- 二十二、springboot之监控管理Actuator
1.新增spring-boot-starter-actuator的依赖 gradle: compile('org.springframework.boot:spring-boot-actuator') ...