中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站開發(fā)的基本技術(shù)業(yè)務(wù)推廣方式有哪些

網(wǎng)站開發(fā)的基本技術(shù),業(yè)務(wù)推廣方式有哪些,專做女鞋的網(wǎng)站,營銷話術(shù)與技巧目錄 蠻力匹配(ORB匹配)RANSAC算法全景圖像拼接 蠻力匹配(ORB匹配) Brute-Force匹配非常簡單,首先在第一幅圖像中選取一個關(guān)鍵點然后依次與第二幅圖像的每個關(guān)鍵點進(jìn)行(描述符)距離測試&#x…

目錄

      • 蠻力匹配(ORB匹配)
      • RANSAC算法
      • 全景圖像拼接

蠻力匹配(ORB匹配)

Brute-Force匹配非常簡單,首先在第一幅圖像中選取一個關(guān)鍵點然后依次與第二幅圖像的每個關(guān)鍵點進(jìn)行(描述符)距離測試,最后返回距離最近的關(guān)鍵點.

對于BF匹配器,首先我們必須使用**cv2.BFMatcher()**創(chuàng)建 BFMatcher 對象。它需要兩個可選的參數(shù):

  • normType:它指定要使用的距離測量,默認(rèn)情況下,它是cv2.NORM_L2,它適用于SIFT,SURF等(cv2.NORM_L1也在那里)。對于基于二進(jìn)制字符串的描述符,如ORB,BRIEF,BRISK等,應(yīng)使用cv2.NORM_HAMMING,使用漢明距離作為度量,如果ORB使用WTA_K == 3or4,則應(yīng)使用cv2.NORM_HAMMING2。
  • crossCheck:默認(rèn)值為False。如果設(shè)置為True,匹配條件就會更加嚴(yán)格,只有到A中的第i個特征點與B中的第j個特征點距離最近,并且B中的第j個特征點到A中的第i個特征點也是最近時才會返回最佳匹配,即這兩個特征點要互相匹配才行

兩個重要的方法是BFMatcher.match()BFMatcher.knnMatch(), 第一個返回最佳匹配, 第二種方法返回k個最佳匹配,其中k由用戶指定.

使用cv2.drawMatches()來繪制匹配的點,它會將兩幅圖像先水平排列,然后在最佳匹配的點之間繪制直線。如果前面使用的BFMatcher.knnMatch(),現(xiàn)在可以使用函數(shù)cv2.drawMatchsKnn為每個關(guān)鍵點和它的個最佳匹配點繪制匹配線。如果要選擇性繪制就要給函數(shù)傳入一個掩模.

一對一匹配 BFMatcher.match()

import numpy as np
import cv2
from matplotlib import pyplot as pltimg1 = cv2.imread('./image/girl1.jpg')
img2 = cv2.imread('./image/girl2.jpg')sift = cv2.SIFT_create()# kp代表特征點 des每個點對應(yīng)特征向量
kp1, des1 = sift.detectAndCompute(img1, None)
kp2, des2 = sift.detectAndCompute(img2, None)bf = cv2.BFMatcher(crossCheck=True)  # 可選對象crossCheck# 1對1匹配
matches = bf.match(des1, des2)
matches = sorted(matches, key=lambda x: x.distance)  # 排序,通過距離來度量img3 = cv2.drawMatches(img1, kp1, img2, kp2, matches[:30], None, flags=2)  # matches[:10] 距離前十的給顯示出來,即顯示十條匹配線cv2.imshow('img', img3)
cv2.waitKey(0)
cv2.destroyAllWindows()

k對最佳匹配 BFMatcher.knnMatch()

import numpy as np
import cv2
from matplotlib import pyplot as pltimg1 = cv2.imread('./image/girl1.jpg')
img2 = cv2.imread('./image/girl2.jpg')sift = cv2.SIFT_create()# kp代表特征點 des每個點對應(yīng)特征向量
kp1, des1 = sift.detectAndCompute(img1, None)
kp2, des2 = sift.detectAndCompute(img2, None)# k對最佳匹配
bf = cv2.BFMatcher()
matches = bf.knnMatch(des1, des2, k=2)good = []
for m, n in matches:# 過濾方法if m.distance < 0.75 * n.distance:good.append([m])img3 = cv2.drawMatchesKnn(img1, kp1, img2, kp2, good, None, flags=2)cv2.imshow('img', img3)
cv2.waitKey(0)
cv2.destroyAllWindows()

RANSAC算法

蠻力匹配是一種簡單而直觀的匹配方法,適用于小規(guī)模的特征點匹配。通過比較所有可能的特征點對,找到最佳匹配。而RANSAC算法則通過隨機采樣和一致性檢驗,從包含噪聲的數(shù)據(jù)中估計出正確的模型參數(shù),對于一些存在噪聲和異常值的情況,RANSAC能夠更穩(wěn)健地估計模型。

利用RANSAC算法計算變換矩陣

RANSAC是"RANdom SAmple Consensus"(隨機一致采樣)的縮寫。該方法是用來找到正確模型來擬合帶有噪聲數(shù)據(jù)的迭代方法。給定一個模型,例如點集之間的單應(yīng)性矩陣?;镜乃枷胧?#xff1a;數(shù)據(jù)中包含正確的點和噪聲點,合理的模型應(yīng)該能夠在描述正確數(shù)據(jù)點的同時摒棄噪聲點。

此外還有ORB匹配、SIFT的特征匹配、基于FLANN的匹配器的匹配,等等

全景圖像拼接

全景圖像拼接是將多張圖像拼接成一張全景圖的任務(wù)。在這個過程中,特征點匹配和單應(yīng)性矩陣估計是關(guān)鍵的步驟。你提到的使用SIFT找到特征點,并通過單應(yīng)性矩陣將圖像進(jìn)行變換,是一種常見的方法。這樣可以在不同視角或位置拍攝的圖像中找到對應(yīng)的特征點,從而實現(xiàn)拼接。

通過SIFT找特征點

關(guān)于單應(yīng)性矩陣(H矩陣):

利用兩個圖像中至少四個特征點能夠求解一個單應(yīng)性矩陣(homography matrix),然后用這個單應(yīng)性矩陣能夠?qū)D像1中的某個坐標(biāo)變換到圖像2中對應(yīng)的位置。然而,矩陣的推導(dǎo)是來自于相機在不同位姿拍攝同一個三維平面,所以使用opencv計算單應(yīng)性矩陣的時候前提是兩個圖像對應(yīng)區(qū)域必須是同一平面。

當(dāng)進(jìn)行全景圖像拼接時,常常需要使用RANSAC算法估計單應(yīng)性矩陣。下面是一個簡單的示例代碼,其中包括特征點匹配、RANSAC算法和全景圖像拼接的步驟。

import cv2
import numpy as npdef find_keypoints_and_descriptors(image):# 使用SIFT算法找到圖像的關(guān)鍵點和描述符sift = cv2.SIFT_create()kp, des = sift.detectAndCompute(image, None)return kp, desdef match_keypoints(des1, des2):# 使用BFMatcher進(jìn)行特征點匹配bf = cv2.BFMatcher()matches = bf.knnMatch(des1, des2, k=2)# 使用比值測試排除不好的匹配good = []for m, n in matches:if m.distance < 0.75 * n.distance:good.append(m)return gooddef ransac_homography(matches, kp1, kp2, reproj_thresh=4.0):# 將匹配的關(guān)鍵點轉(zhuǎn)換為numpy數(shù)組src_pts = np.float32([kp1[m.queryIdx].pt for m in matches]).reshape(-1, 1, 2)dst_pts = np.float32([kp2[m.trainIdx].pt for m in matches]).reshape(-1, 1, 2)# 使用RANSAC算法估計單應(yīng)性矩陣H, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, reproj_thresh)return Hdef stitch_images(image1, image2, H):# 將圖像1進(jìn)行透視變換,將其疊加到圖像2上rows1, cols1 = image1.shape[:2]rows2, cols2 = image2.shape[:2]warp_img1 = cv2.warpPerspective(image1, H, (cols1 + cols2, rows2))warp_img1[:rows2, :cols2] = image2return warp_img1if __name__ == "__main__":# 讀取兩張圖像img1 = cv2.imread('image1.jpg')img2 = cv2.imread('image2.jpg')# 找到關(guān)鍵點和描述符kp1, des1 = find_keypoints_and_descriptors(img1)kp2, des2 = find_keypoints_and_descriptors(img2)# 進(jìn)行特征點匹配matches = match_keypoints(des1, des2)# 使用RANSAC估計單應(yīng)性矩陣H = ransac_homography(matches, kp1, kp2)# 進(jìn)行全景圖像拼接result = stitch_images(img1, img2, H)# 顯示拼接結(jié)果cv2.imshow('Panorama', result)cv2.waitKey(0)cv2.destroyAllWindows()

為了達(dá)到更好的拼接效果,可能需要使用更復(fù)雜的圖像配準(zhǔn)和融合技術(shù)。


http://www.risenshineclean.com/news/46942.html

相關(guān)文章:

  • 網(wǎng)站開發(fā)定制多少錢南京百度搜索優(yōu)化
  • 廣州城市建設(shè)網(wǎng)站宣傳推廣渠道有哪些
  • 商業(yè)廣告創(chuàng)意設(shè)計seo關(guān)鍵詞推廣怎么做
  • 全國企業(yè)信用信息平臺武漢整站優(yōu)化
  • 提供衡水網(wǎng)站建設(shè)深圳網(wǎng)站建設(shè)方案
  • 網(wǎng)頁版夢幻西游周年慶攻略做專業(yè)搜索引擎優(yōu)化
  • web制作網(wǎng)站西安seo優(yōu)化公司
  • 網(wǎng)站建設(shè)費開票收候開在哪個類別里杭州seo公司哪家好
  • 有哪些網(wǎng)站用vue做的網(wǎng)絡(luò)推廣的公司是騙局嗎
  • 網(wǎng)站的建設(shè)費用新聞今天最新消息
  • 網(wǎng)站開發(fā)字體選擇鄭州網(wǎng)站優(yōu)化渠道
  • 上海做網(wǎng)站中國聯(lián)通和騰訊
  • php網(wǎng)站開發(fā)案例論文搜狗seo刷排名軟件
  • 鄭州網(wǎng)站推廣公司排名武漢百度百科
  • 東莞公司網(wǎng)站策劃怎么建立網(wǎng)站
  • 赤峰網(wǎng)站建設(shè)培訓(xùn)app制作
  • 網(wǎng)站設(shè)計方案和技巧網(wǎng)絡(luò)暴力事件
  • 成都醫(yī)院做網(wǎng)站建設(shè)太原seo排名收費
  • 日木女人做爰視頻網(wǎng)站淘寶搜索關(guān)鍵詞排名
  • 做網(wǎng)站的電腦最好的免費建站網(wǎng)站
  • c#網(wǎng)站開發(fā)案例源碼app如何推廣
  • 哪里做網(wǎng)站做得好網(wǎng)站怎么做優(yōu)化排名
  • 公司制作網(wǎng)站價格長春最新發(fā)布信息
  • 定制型網(wǎng)站制作明細(xì)報價表百度應(yīng)用中心
  • 東坑網(wǎng)頁設(shè)計seo技巧
  • 做外貿(mào)要自己建網(wǎng)站嗎網(wǎng)頁免費制作網(wǎng)站
  • 桂林賣手機網(wǎng)站seo網(wǎng)站優(yōu)化快速排名軟件
  • 市場營銷的八個理論seo系統(tǒng)培訓(xùn)課程
  • 做外貿(mào)對學(xué)歷要求高嗎seo經(jīng)典案例分析
  • 南京本地網(wǎng)站建設(shè)視頻專用客戶端app