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()

  • 相关阅读:
    1.27
    1.25
    Representation Learning with Contrastive Predictive Coding
    Learning a Similarity Metric Discriminatively, with Application to Face Verification
    噪声对比估计(负样本采样)
    Certified Adversarial Robustness via Randomized Smoothing
    Certified Robustness to Adversarial Examples with Differential Privacy
    Dynamic Routing Between Capsules
    Defending Adversarial Attacks by Correcting logits
    Visualizing Data using t-SNE
  • 原文地址:https://www.cnblogs.com/Lin-Yi/p/9433932.html
Copyright © 2011-2022 走看看