最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

opencv-python 提取sift特征并匹配的實例

 更新時間:2019年12月09日 09:57:46   作者:Yan456jie  
今天小編就為大家分享一篇opencv-python 提取sift特征并匹配的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說,直接上代碼吧!

# -*- coding: utf-8 -*-
import cv2
import numpy as np
from find_obj import filter_matches,explore_match
from matplotlib import pyplot as plt
 
def getSift():
  '''
  得到并查看sift特征
  '''
  img_path1 = '../../data/home.jpg'
  #讀取圖像
  img = cv2.imread(img_path1)
  #轉(zhuǎn)換為灰度圖
  gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
  #創(chuàng)建sift的類
  sift = cv2.SIFT()
  #在圖像中找到關(guān)鍵點 也可以一步計算#kp, des = sift.detectAndCompute
  kp = sift.detect(gray,None)
  print type(kp),type(kp[0])
  #Keypoint數(shù)據(jù)類型分析 http://www.cnblogs.com/cj695/p/4041399.html
  print kp[0].pt
  #計算每個點的sift
  des = sift.compute(gray,kp)
  print type(kp),type(des)
  #des[0]為關(guān)鍵點的list,des[1]為特征向量的矩陣
  print type(des[0]), type(des[1])
  print des[0],des[1]
  #可以看出共有885個sift特征,每個特征為128維
  print des[1].shape
  #在灰度圖中畫出這些點
  img=cv2.drawKeypoints(gray,kp)
  #cv2.imwrite('sift_keypoints.jpg',img)
  plt.imshow(img),plt.show()
 
def matchSift():
  '''
  匹配sift特征
  '''
  img1 = cv2.imread('../../data/box.png', 0) # queryImage
  img2 = cv2.imread('../../data/box_in_scene.png', 0) # trainImage
  sift = cv2.SIFT()
  kp1, des1 = sift.detectAndCompute(img1, None)
  kp2, des2 = sift.detectAndCompute(img2, None)
  # 蠻力匹配算法,有兩個參數(shù),距離度量(L2(default),L1),是否交叉匹配(默認false)
  bf = cv2.BFMatcher()
  #返回k個最佳匹配
  matches = bf.knnMatch(des1, des2, k=2)
  # cv2.drawMatchesKnn expects list of lists as matches.
  #opencv2.4.13沒有drawMatchesKnn函數(shù),需要將opencv2.4.13\sources\samples\python2下的common.py和find_obj文件放入當前目錄,并導(dǎo)入
  p1, p2, kp_pairs = filter_matches(kp1, kp2, matches)
  explore_match('find_obj', img1, img2, kp_pairs) # cv2 shows image
  cv2.waitKey()
  cv2.destroyAllWindows()
 
def matchSift3():
  '''
  匹配sift特征
  '''
  img1 = cv2.imread('../../data/box.png', 0) # queryImage
  img2 = cv2.imread('../../data/box_in_scene.png', 0) # trainImage
  sift = cv2.SIFT()
  kp1, des1 = sift.detectAndCompute(img1, None)
  kp2, des2 = sift.detectAndCompute(img2, None)
  # 蠻力匹配算法,有兩個參數(shù),距離度量(L2(default),L1),是否交叉匹配(默認false)
  bf = cv2.BFMatcher()
  #返回k個最佳匹配
  matches = bf.knnMatch(des1, des2, k=2)
  # cv2.drawMatchesKnn expects list of lists as matches.
  #opencv3.0有drawMatchesKnn函數(shù)
  # Apply ratio test
  # 比值測試,首先獲取與A 距離最近的點B(最近)和C(次近),只有當B/C
  # 小于閾值時(0.75)才被認為是匹配,因為假設(shè)匹配是一一對應(yīng)的,真正的匹配的理想距離為0
  good = []
  for m, n in matches:
    if m.distance < 0.75 * n.distance:
      good.append([m])
  img3 = cv2.drawMatchesKnn(img1, kp1, img2, kp2, good[:10], None, flags=2)
  cv2.drawm
  plt.imshow(img3), plt.show()
 
matchSift()

以上這篇opencv-python 提取sift特征并匹配的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python gevent協(xié)程切換實現(xiàn)詳解

    Python gevent協(xié)程切換實現(xiàn)詳解

    這篇文章主要介紹了Python gevent協(xié)程切換實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Flask中jinja2的繼承實現(xiàn)方法及實例

    Flask中jinja2的繼承實現(xiàn)方法及實例

    在本篇文章里小編給大家分享的是一篇關(guān)于Flask中jinja2的繼承實現(xiàn)方法及實例,有興趣的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • Python算法練習(xí)之二分查找算法的實現(xiàn)

    Python算法練習(xí)之二分查找算法的實現(xiàn)

    二分查找也稱折半查找(Binary Search),它是一種效率較高的查找方法。本文將介紹python如何實現(xiàn)二分查找算法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2022-06-06
  • numpy中的掩碼數(shù)組的使用

    numpy中的掩碼數(shù)組的使用

    本文主要介紹了numpy中的掩碼數(shù)組的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python已解決NameError: name ‘xxx‘ is not defined

    Python已解決NameError: name ‘xxx‘ is not&nb

    本文主要介紹了Python已解決NameError: name ‘xxx‘ is not defined,解決報錯NameError: name 'xxx' is not defined的關(guān)鍵在于仔細檢查拼寫、作用域和賦值等問題,感興趣的可以了解一下
    2024-06-06
  • Python給你的頭像加上圣誕帽

    Python給你的頭像加上圣誕帽

    這篇文章主要為大家詳細介紹了Python給你的頭像加上圣誕帽 ,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python tkinter之 復(fù)選、文本、下拉的實現(xiàn)

    python tkinter之 復(fù)選、文本、下拉的實現(xiàn)

    這篇文章主要介紹了python tkinter之 復(fù)選、文本、下拉的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Pytorch實現(xiàn)圖片異常檢測功能

    Pytorch實現(xiàn)圖片異常檢測功能

    異常檢測指的是在正常的圖片中找到異常的數(shù)據(jù),由于無法通過規(guī)則進行識別判斷,這樣的應(yīng)用場景通常都是需要人工進行識別,本文給大家介紹了使用Pytorch實現(xiàn)圖片異常檢測功能,感興趣的朋友可以參考下
    2024-05-05
  • Python使用re模塊實現(xiàn)正則表達式操作指南

    Python使用re模塊實現(xiàn)正則表達式操作指南

    在Python中需要通過正則表達式對字符串進?匹配的時候,可以使??個python自帶的模塊,名字為re,下面這篇文章主要給大家介紹了關(guān)于Python使用re模塊實現(xiàn)正則表達式操作的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • PyTorch常用函數(shù)torch.cat()中dim參數(shù)使用說明

    PyTorch常用函數(shù)torch.cat()中dim參數(shù)使用說明

    這篇文章主要為大家介紹了PyTorch常用函數(shù)torch.cat()中dim參數(shù)使用說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04

最新評論

洞头县| 江安县| 凌海市| 彩票| 龙江县| 石渠县| 泊头市| 莱阳市| 西安市| 拜城县| 东光县| 合水县| 清水县| 吉隆县| 和田市| 台北县| 富平县| 泽普县| 连城县| 邵武市| 湖北省| 嫩江县| 新绛县| 甘泉县| 友谊县| 濮阳市| 衡水市| 景洪市| 石棉县| 乌兰县| 揭西县| 上杭县| 浦县| 宝应县| 新营市| 利川市| 社会| 滦南县| 安化县| 同仁县| 阜新市|