zoukankan      html  css  js  c++  java
  • python opencv3 特征提取与描述 DoG SIFT hessian surf

    git:https://github.com/linyi0604/Computer-Vision

    DoG和SIFT特征提取与描述

     1 # coding:utf-8
     2 
     3 import cv2
     4 
     5 # 读取图片
     6 img = cv2.imread("../data/walez1.jpg")
     7 # 转为灰度图像
     8 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
     9 # 创建一个sift对象 并计算灰度图像
    10 sift = cv2.xfeatures2d.SIFT_create()
    11 keypoints, descriptor = sift.detectAndCompute(gray, None)
    12 """
    13 sift对象会使用DoG检测关键点,对关键点周围的区域计算向量特征,检测并计算
    14 返回 关键点和描述符
    15 关键点是点的列表
    16 描述符是检测到的特征的局部区域图像列表
    17 
    18 关键点的属性:
    19     pt: 点的x y坐标
    20     size: 表示特征的直径
    21     angle: 特征方向
    22     response: 关键点的强度
    23     octave: 特征所在金字塔层级
    24         算法进行迭代的时候, 作为参数的图像尺寸和相邻像素会发生变化
    25         octave属性表示检测到关键点所在的层级
    26     ID: 检测到关键点的ID
    27 
    28 """
    29 # 在图像上绘制关键点
    30 # DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS表示对每个关键点画出圆圈和方向
    31 img = cv2.drawKeypoints(image=img, outImage=img, keypoints=keypoints,
    32                         flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS,
    33                         color=(51, 163, 236))
    34 
    35 cv2.imshow("sift_keypoints", img)
    36 cv2.waitKey()
    37 cv2.destroyAllWindows()

    hessian 与SURF特征提取与匹配

     1 # coding:utf-8
     2 
     3 import cv2
     4 
     5 img = cv2.imread("../data/walez1.jpg")
     6 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
     7 
     8 surf = cv2.xfeatures2d.SURF_create(8000)
     9 """
    10     创建surf对象,设置阈值,阈值越高检测到的特征就越少,
    11     通过调整阈值得到合适的关键点
    12 """
    13 # 检测图像中的关键点和描述
    14 keypoints, descriptor = surf.detectAndCompute(gray, None)
    15 """
    16 sift对象会使用DoG检测关键点,对关键点周围的区域计算向量特征,检测并计算
    17 返回 关键点和描述符
    18 关键点是点的列表
    19 描述符是检测到的特征的局部区域图像列表
    20 
    21 关键点的属性:
    22     pt: 点的x y坐标
    23     size: 表示特征的直径
    24     angle: 特征方向
    25     response: 关键点的强度
    26     octave: 特征所在金字塔层级
    27         算法进行迭代的时候, 作为参数的图像尺寸和相邻像素会发生变化
    28         octave属性表示检测到关键点所在的层级
    29     ID: 检测到关键点的ID
    30 
    31 """
    32 # 将关键点画在原图像上
    33 cv2.drawKeypoints(image=img, outImage=img,
    34                   keypoints=keypoints,flags=4,
    35                   color=(51, 163, 236))
    36 
    37 cv2.imshow("surf_detected", img)
    38 cv2.waitKey()
    39 cv2.destroyAllWindows()

  • 相关阅读:
    tsung基准测试方法、理解tsung.xml配置文件、tsung统计报告简介
    用指针方式,实现大小写字母户转,数字不变,遇到其他字符则停止转换并输出
    重写strcat函数,以实现strcat的功能
    重写strcpy函数,以实现strcpy的功能
    用指针的方式实现,重写strrchr函数的功能
    求指定整数范围内的素数之和
    求指定整数数组的中位数
    求一个数的阶乘
    LR中变量、参数的使用介绍
    Linux Shell流程例子
  • 原文地址:https://www.cnblogs.com/Lin-Yi/p/9433932.html
Copyright © 2011-2022 走看看