精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

圖像配準(zhǔn):基于 OpenCV 的高效實(shí)現(xiàn)

人工智能
本文我將對(duì)圖像配準(zhǔn)進(jìn)行一個(gè)簡(jiǎn)單概述,展示一個(gè)最小的 OpenCV 實(shí)現(xiàn),并展示一個(gè)可以使配準(zhǔn)過(guò)程更加高效的簡(jiǎn)單技巧。

在這篇文章中,我將對(duì)圖像配準(zhǔn)進(jìn)行一個(gè)簡(jiǎn)單概述,展示一個(gè)最小的 OpenCV 實(shí)現(xiàn),并展示一個(gè)可以使配準(zhǔn)過(guò)程更加高效的簡(jiǎn)單技巧。

什么是圖像配準(zhǔn)

圖像配準(zhǔn)被定義為將不同成像設(shè)備或傳感器在不同時(shí)間和角度拍攝的兩幅或多幅圖像,或來(lái)自同一場(chǎng)景的兩幅或多幅圖像疊加起來(lái),以幾何方式對(duì)齊圖像以進(jìn)行分析的過(guò)程(Zitová 和 Flusser,2003 年)。

百度百科給出的解釋

圖像配準(zhǔn):圖像配準(zhǔn)(Image registration)就是將不同時(shí)間、不同傳感器(成像設(shè)備)或不同條件下(天候、照度、攝像位置和角度等)獲取的兩幅或多幅圖像進(jìn)行匹配、疊加的過(guò)程,它已經(jīng)被廣泛地應(yīng)用于遙感數(shù)據(jù)分析、計(jì)算機(jī)視覺(jué)、圖像處理等領(lǐng)域。

醫(yī)學(xué)科學(xué)、遙感和計(jì)算機(jī)視覺(jué)都使用圖像配準(zhǔn)。

有兩種主要方法:

  • 經(jīng)典計(jì)算機(jī)視覺(jué)方法(使用 OpenCV)——我們將在本文中關(guān)注的內(nèi)容
  • 基于深度學(xué)習(xí)的方法

雖然后者可以更好地工作,但它可能需要一些“域”適應(yīng)(在你的數(shù)據(jù)上微調(diào)神經(jīng)網(wǎng)絡(luò))并且可能計(jì)算量太大。

使用 OpenCV 進(jìn)行圖像配準(zhǔn)

基于特征的方法:由單應(yīng)變換關(guān)聯(lián)的圖像對(duì)

此操作試圖發(fā)現(xiàn)兩張照片之間的匹配區(qū)域并在空間上對(duì)齊它們以最大限度地減少錯(cuò)誤。

我們的目標(biāo)是找到一個(gè)單應(yīng)性矩陣 H,它告訴我們需要如何修改其中一張圖像,使其與另一張圖像完美對(duì)齊。

第 1 步:關(guān)鍵點(diǎn)檢測(cè)

關(guān)鍵點(diǎn)定義了圖像中一個(gè)獨(dú)特的小區(qū)域(角、邊緣、圖案)。關(guān)鍵點(diǎn)檢測(cè)器的一個(gè)重要方面是找到的區(qū)域應(yīng)該對(duì)圖像變換(例如定位、比例和亮度)具有魯棒性,因?yàn)檫@些區(qū)域很可能出現(xiàn)在我們?cè)噲D對(duì)齊的兩個(gè)圖像中。有許多執(zhí)行關(guān)鍵點(diǎn)檢測(cè)的算法,例如 SIFT、ORB、AKAZE、SURF 等。

第 2 步:特征匹配

現(xiàn)在我們必須匹配來(lái)自?xún)蓚€(gè)圖像的關(guān)鍵點(diǎn),這些關(guān)鍵點(diǎn)實(shí)際上對(duì)應(yīng)于同一點(diǎn)。

第 3 步:?jiǎn)螒?yīng)性

單應(yīng)性通常由一個(gè) 3x3 矩陣表示,它描述了應(yīng)該應(yīng)用于一個(gè)圖像以與另一個(gè)圖像對(duì)齊的幾何變換。

第 4 步:圖像變形

找到單應(yīng)性矩陣后,我們可以用它來(lái)對(duì)齊圖像。下面是該過(guò)程的代碼:


import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

img1 = cv.imread('image1.jpg', cv.IMREAD_GRAYSCALE)  # referenceImage
img2 = cv.imread('image2.jpg', cv.IMREAD_GRAYSCALE)  # sensedImage

# Initiate SIFT detector
sift_detector = cv.SIFT_create()
# Find the keypoints and descriptors with SIFT
kp1, des1 = sift_detector.detectAndCompute(img1, None)
kp2, des2 = sift_detector.detectAndCompute(img2, None)

# BFMatcher with default params
bf = cv.BFMatcher()
matches = bf.knnMatch(des1, des2, k=2)

# Filter out poor matches
good_matches = []
for m,n in matches:
    if m.distance < 0.75*n.distance:
        good_matches.append(m)

matches = good_matches
        
points1 = np.zeros((len(matches), 2), dtype=np.float32)
points2 = np.zeros((len(matches), 2), dtype=np.float32)

for i, match in enumerate(matches):
    points1[i, :] = kp1[match.queryIdx].pt
    points2[i, :] = kp2[match.trainIdx].pt

# Find homography
H, mask = cv2.findHomography(points1, points2, cv2.RANSAC)

# Warp image 1 to align with image 2
img1Reg = cv2.warpPerspective(img1, H, (img2.shape[1], img2.shape[0]))
cv.imwrite('aligned_img1.jpg', img1Reg)The problem is that this matrix H is found via a compute-intensive optimization process.

高效的圖像配準(zhǔn)

無(wú)論您為每個(gè)步驟選擇的參數(shù)如何,對(duì)執(zhí)行時(shí)間影響最大的是圖像的分辨率。您可以大幅調(diào)整它們的大小,但如果您需要對(duì)齊的圖像具有原始分辨率,會(huì)發(fā)生什么情況?

幸運(yùn)的是,有辦法解決這個(gè)問(wèn)題。事實(shí)證明,您可以計(jì)算低分辨率圖像的變換,然后調(diào)整此變換以適用于全分辨率圖像。

詳細(xì)步驟:

  1. 調(diào)整圖像大小
  2. 在低分辨率圖像上計(jì)算矩陣 H
  3. 變換矩陣 H 使其適用于全分辨率圖像
  4. 將新矩陣應(yīng)用于原始圖像。

第 3 步可能是這里最不明顯的部分,所以讓我們看看它是如何工作的:

我們想要調(diào)整在低分辨率圖像上計(jì)算的變換以適用于高分辨率圖像。因此,我們希望高分辨率圖像中的每個(gè)像素執(zhí)行以下操作:

幸運(yùn)的是,所有這些步驟都只是矩陣乘法,我們可以將所有這些步驟組合在一個(gè)單一的轉(zhuǎn)換中。

設(shè) H 為您計(jì)算出的變換。您可以將 H 乘以另一個(gè)單應(yīng)性 A,得到 AH = H',其中 H' 是進(jìn)行兩種變換的單應(yīng)性,相當(dāng)于先應(yīng)用 H,然后應(yīng)用 A。

下面是詳細(xì)代碼:


import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

img1 = cv.imread('image1.jpg', cv.IMREAD_GRAYSCALE)  # referenceImage
img2 = cv.imread('image2.jpg', cv.IMREAD_GRAYSCALE)  # sensedImage

#  Resize the image by a factor of 8 on each side. If your images are 
# very high-resolution, you can try to resize even more, but if they are 
# already small you should set this to something less agressive.
resize_factor = 1.0/8.0

img1_rs = cv.resize(img1, (0,0), fx=resize_factor, fy=resize_factor)
img2_rs = cv.resize(img2, (0,0), fx=resize_factor, fy=resize_factor)

# Initiate SIFT detector 
sift_detector = cv.SIFT_create()

# Find the keypoints and descriptors with SIFT on the lower resolution images
kp1, des1 = sift_detector.detectAndCompute(img1_rs, None)
kp2, des2 = sift_detector.detectAndCompute(img2_rs, None)

# BFMatcher with default params
bf = cv.BFMatcher()
matches = bf.knnMatch(des1, des2, k=2)

# Filter out poor matches
good_matches = []
for m,n in matches:
    if m.distance < 0.75*n.distance:
        good_matches.append(m)

matches = good_matches
points1 = np.zeros((len(matches), 2), dtype=np.float32)
points2 = np.zeros((len(matches), 2), dtype=np.float32)

for i, match in enumerate(matches):
    points1[i, :] = kp1[match.queryIdx].pt
    points2[i, :] = kp2[match.trainIdx].pt

# Find homography
H, mask = cv2.findHomography(points1, points2, cv2.RANSAC)

# Get low-res and high-res sizes
low_height, low_width = img1_rs.shape
height, width = img1.shape
low_size = np.float32([[0, 0], [0, low_height], [low_width, low_height], [low_width, 0]])
high_size = np.float32([[0, 0], [0, height], [width, height], [width, 0]])

# Compute scaling transformations
scale_up = cv.getPerspectiveTransform(low_size, high_size)
scale_down = cv.getPerspectiveTransform(high_size, low_size)

#  Combine the transformations. Remember that the order of the transformation 
# is reversed when doing matrix multiplication
# so this is actualy scale_down -> H -> scale_up
h_and_scale_up = np.matmul(scale_up, H)
scale_down_h_scale_up = np.matmul(h_and_scale_up, scale_down)

# Warp image 1 to align with image 2
img1Reg = cv2.warpPerspective(
            img1, 
            scale_down_h_scale_up, 
            (img2.shape[1], img2.shape[0])
          )

cv.imwrite('aligned_img1.jpg', img1Reg)
責(zé)任編輯:趙寧寧 來(lái)源: 小白玩轉(zhuǎn)Python
相關(guān)推薦

2024-01-08 08:23:08

OpenCV機(jī)器學(xué)習(xí)計(jì)算機(jī)視覺(jué)

2025-05-09 10:01:06

EasyExcelMySQLMySQL8

2017-05-22 13:15:45

TensorFlow深度學(xué)習(xí)

2018-07-19 15:13:15

深度學(xué)習(xí)圖像

2017-05-12 16:25:44

深度學(xué)習(xí)圖像補(bǔ)全tensorflow

2015-05-28 15:01:23

程序員高效程序員

2018-08-03 09:42:01

人工智能深度學(xué)習(xí)人臉識(shí)別

2022-12-18 19:49:45

AI

2023-04-11 08:00:00

PythonOtsu閾值算法圖像背景分割

2024-09-04 15:42:38

OpenCV開(kāi)發(fā)Python

2025-03-25 08:30:00

OpenCV計(jì)算機(jī)視覺(jué)圖像識(shí)別

2025-08-05 07:34:19

2022-09-29 23:53:06

機(jī)器學(xué)習(xí)遷移學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2025-10-27 08:55:00

2022-11-16 09:03:35

Sentry前端監(jiān)控

2022-11-10 08:48:20

開(kāi)源數(shù)據(jù)湖Arctic

2010-07-02 08:39:02

SQLServer數(shù)據(jù)

2025-07-14 06:10:00

Go編程代碼

2022-03-01 10:51:15

領(lǐng)導(dǎo)者CIOIT團(tuán)隊(duì)

2019-10-10 09:00:30

云端云遷移云計(jì)算
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲福利在线观看视频| 国产视频三区四区| 国内小视频在线看| 成人av在线网| 国产成人亚洲综合91| 欧美丰满老妇熟乱xxxxyyy| 国产日韩欧美中文在线| 午夜电影久久久| 日韩av电影免费播放| 国产精品毛片一区二区在线看舒淇 | 亚洲女人****多毛耸耸8| 国产精品日韩一区二区免费视频| 日韩精品成人免费观看视频| 亚洲国产一区二区在线观看| 日韩精品免费综合视频在线播放| 日韩中文字幕a| 91av久久| 日韩一区日韩二区| 国产综合第一页| 一级淫片免费看| 夜夜嗨一区二区| 久久精品视频播放| 四虎永久免费影院| 日本精品一区二区三区在线观看视频| 色系网站成人免费| 国产资源在线免费观看| av男人的天堂在线| 99久久综合狠狠综合久久| 成人在线激情视频| 神马久久久久久久| 91久久亚洲| 久久精品视频免费播放| 乐播av一区二区三区| 成人福利一区| 5566中文字幕一区二区电影| 久久精品视频91| 成人一级福利| 一区二区免费看| 伊人久久大香线蕉av一区| 日本不卡免费播放| 成人一区二区三区视频 | 中文字幕免费高清网站| 亚洲成人直播| 欧美日韩成人在线播放| 亚洲人与黑人屁股眼交| 波多野结衣在线播放一区| 亚洲精品国产精品国自产在线| 一级黄色免费毛片| 999精品视频在线观看| 欧美性猛交xxxx乱大交退制版| 成年人视频观看| av资源网在线播放| 亚洲午夜在线观看视频在线| 日韩精品手机在线观看| 久久77777| 成人欧美一区二区三区白人| 亚州欧美一区三区三区在线| 成人亚洲综合天堂| 国产日产欧美精品一区二区三区| 欧美韩国日本精品一区二区三区| 欧美在线精品一区二区三区| 成人黄色a**站在线观看| 成人区精品一区二区| 可以免费看毛片的网站| 国产成a人亚洲精| 国内不卡一区二区三区| 免费观看国产视频| 99天天综合性| 免费观看国产成人| 国产福利电影在线| 中文字幕日韩精品一区 | 337人体粉嫩噜噜噜| 成人高清av| 久久亚洲私人国产精品va| 国产67194| 极品中文字幕一区| 91成人性视频| 日韩黄色一级视频| 久久av资源站| 国产另类第一区| 久久综合九色综合久| 国产精品午夜在线| 老司机激情视频| 亚洲美女尤物影院| 欧美日韩精品一区二区| 2025中文字幕| 久久99国内| 久久亚洲成人精品| 日韩免费不卡视频| 免费在线成人网| 国产成人看片| 91精彩视频在线播放| 亚洲精品高清视频在线观看| 欧美黄色免费影院| 欧美视频在线视频精品| 欧美一二三在线| 人妻体内射精一区二区三区| 亚洲亚洲免费| 深夜福利国产精品| 九九九在线视频| 国产精品夜夜夜| 国产精品午夜国产小视频| 国产又粗又黄又爽| 成人午夜看片网址| 奇米888一区二区三区| 色影院视频在线| 中文文精品字幕一区二区| 国产爆乳无码一区二区麻豆| 色多多在线观看| 欧美艳星brazzers| 免费观看黄网站| 夜色77av精品影院| 久久亚洲电影天堂| 亚洲va在线观看| 国产69精品久久99不卡| 欧美一进一出视频| 秋霞在线午夜| 91国偷自产一区二区开放时间| 中文字幕资源在线观看| 成人精品毛片| 日韩一区二区av| 日韩三级免费看| 国产99久久久久| 日本一区精品| heyzo高清在线| 欧美精品高清视频| 美国黄色一级毛片| 午夜日韩电影| 人体精品一二三区| 少妇人妻偷人精品一区二区| 国产精品乱码妇女bbbb| 日本三级免费网站| 精品一区91| 中文字幕精品在线| 九九热精品视频在线| 国产综合久久久久久鬼色| 欧美日韩综合网| 92久久精品| 91精品国产一区二区| 国产一二三四五区| 亚洲高清免费| 亚洲字幕在线观看| 69久久夜色| 欧美日韩中文字幕在线| 免费高清视频在线观看| 久久影视一区| 欧美影院久久久| 懂色av蜜臀av粉嫩av分享吧| 亚洲人成小说网站色在线| 不卡的在线视频| 精品精品久久| 日韩美女福利视频| 韩国av永久免费| 一区二区三区久久| 五月六月丁香婷婷| 欧美电影免费| 91久久国产精品| 拍真实国产伦偷精品| 欧美视频一区在线| 在线观看国产精品一区| 国产一区二区你懂的| 国产精品二区在线| av网址在线看| 精品久久久久av影院| 破处女黄色一级片| 国产真实精品久久二三区| 日本一区二区在线| 影音成人av| 中文字幕欧美日韩精品| 日本欧美www| 欧美国产国产综合| 精产国品一二三区| 欧美日韩中文| 国产一区精品在线| 岛国av在线播放| 日韩高清欧美高清| 好看的av在线| www精品美女久久久tv| 能在线观看的av网站| 波多野结衣一区| 国产啪精品视频网站| 在线观看精品一区二区三区| 欧美日韩亚洲综合在线| 羞羞在线观看视频| 成人网男人的天堂| 成熟丰满熟妇高潮xxxxx视频| 美女视频免费精品| 青青草99啪国产免费| 成人性生交大片免费看午夜| 欧美久久久久久蜜桃| 日韩精品123区| 成人h版在线观看| 99热成人精品热久久66| 欧美少妇性xxxx| 91精品国产综合久久香蕉| 羞羞的网站在线观看| 亚洲电影免费观看高清完整版在线 | 成人精品免费网站| 内射国产内射夫妻免费频道| 动漫3d精品一区二区三区乱码| 国产精品99一区| 国产视频中文字幕在线观看| 欧美刺激脚交jootjob| 国产精品久久久久久久妇| 国产午夜精品理论片a级大结局| 九九精品久久久| 狠狠色丁香久久综合频道| 欧美视频1区| 国产精品一区二区三区av| 久久久在线视频| 97超碰人人在线| 精品亚洲夜色av98在线观看| 97免费观看视频| 精品日韩美女的视频高清| 国产第一页精品| 国产成人福利片| youjizzxxxx18| 午夜亚洲福利| 日本一区二区三区www| 视频精品一区| 国产精品视频自拍| 51av在线| 久久精品中文字幕免费mv| 国产小视频免费在线网址| 日韩欧美在线观看一区二区三区| 久久免费激情视频| 国产精品污www在线观看| 色婷婷精品久久二区二区密| 久久99精品久久只有精品| 亚洲乱码国产一区三区| 精品成人在线| 中文字幕中文字幕在线中一区高清| 任你躁在线精品免费| 91免费精品视频| 亚州一区二区三区| 浅井舞香一区二区| av漫画网站在线观看| 日韩视频免费大全中文字幕| 日本大片在线观看| 精品国产百合女同互慰| 国产视频一二三四区| 91精品国产一区二区三区香蕉| 精品小视频在线观看| 国产精品久久久久aaaa樱花| 四虎成人免费影院| 久久久综合网站| 少妇户外露出[11p]| 国产成人精品三级| 国产一级片自拍| 性xx色xx综合久久久xx| 日本精品www| 午夜亚洲福利在线老司机| bt天堂新版中文在线地址| 国产高清欧美| 亚洲精品一品区二品区三品区 | 免费av网站在线观看| 在线观看久久久久久| 麻豆国产在线播放| 精品呦交小u女在线| 日韩一级免费毛片| 亚洲国产成人精品女人久久久 | av在线免费播放网址| 久久色在线视频| 国产麻豆天美果冻无码视频| 99r精品视频| 少妇户外露出[11p]| 国产区在线观看成人精品 | 加勒比久久高清| 国产91色在线|亚洲| 日韩一级淫片| 成人看片在线| 国产精品18hdxxxⅹ在线| 91麻豆蜜桃| 亚洲黄色录像| 久久一区91| 日本三级中国三级99人妇网站| 婷婷精品在线观看| 欧美中文娱乐网| 国产一区二区精品久| 97超碰人人爱| 欧美精品二区| 成人黄色大片网站| 1024日韩| 日韩免费高清在线| 免播放器亚洲一区| xxxx在线免费观看| 国产精品主播直播| 欧美双性人妖o0| 久久婷婷久久一区二区三区| 免费黄色国产视频| 亚洲激情五月婷婷| 久久精品国产亚洲av无码娇色| 亚洲国产aⅴ成人精品无吗| 亚洲黄色小说图片| 欧美色视频一区| 91午夜交换视频| 精品国内二区三区| 你懂的视频在线| xxxxx91麻豆| а√天堂8资源中文在线| 欧美一区深夜视频| 日韩久久一区| 国产伦精品一区二区三区| 国产欧美日韩在线观看视频| 在线亚洲美日韩| 国产精品久久777777毛茸茸 | 黑人巨大精品欧美一区二区小视频| 你懂的在线观看一区二区| 日本一区视频在线观看免费| 综合久久一区| 欧美精品卡一卡二| 韩国三级在线一区| yy6080午夜| 中文字幕在线不卡| 99热只有这里有精品| 欧美视频自拍偷拍| 色视频在线观看| 久久亚洲精品中文字幕冲田杏梨| 狠狠躁少妇一区二区三区| 国产精品免费久久久| 极品束缚调教一区二区网站| 欧洲金发美女大战黑人| 天堂资源在线中文精品| 国产精品果冻传媒| 国产精品久久久久久亚洲毛片| 久久精品国产亚洲av无码娇色| 日韩一区二区在线观看视频播放| 日本v片在线免费观看| 欧美日韩国产成人高清视频| 天堂电影一区| 精品乱子伦一区二区三区| 国产精品成久久久久| 97成人在线观看视频| 高清国产一区二区三区| 一区二区三区伦理片| 一本到不卡免费一区二区| 亚洲黄色精品视频| 久久精品在线播放| 国产精品伦一区二区| 免费中文日韩| 99热这里只有精品8| 天天色天天干天天色| 中文字幕欧美激情| 一级片在线观看免费| 亚洲欧美三级在线| 欧美四级在线| 91免费看片网站| 99精品全国免费观看视频软件| 亚洲xxx在线观看| 欧美国产日本视频| 伊人中文字幕在线观看| 精品性高朝久久久久久久| 成人国产免费电影| 肥熟一91porny丨九色丨| 欧美在线观看天堂一区二区三区| 国产又黄又猛又粗| 久久精品亚洲一区二区三区浴池| 精品少妇久久久| 欧美www视频| 性欧美videoshd高清| 亚洲最大福利网站| 日韩一区电影| 亚洲av毛片在线观看| 亚洲欧美一区二区三区国产精品| 91久久久久久久久久久久| 久久久www成人免费精品| 国产一区二区三区四区五区3d| 先锋影音一区二区三区| 免费看欧美女人艹b| 国内偷拍精品视频| 精品久久国产97色综合| av最新在线| 精品婷婷色一区二区三区蜜桃| 视频一区视频二区在线观看| 久久精品视频18| 欧美视频一二三区| 香蕉视频在线播放| 国产精品果冻传媒潘| 99精品免费| 国产熟妇久久777777| 欧洲av一区二区嗯嗯嗯啊| bt在线麻豆视频| 国产在线观看一区| 免费永久网站黄欧美| 在线观看国产三级| 日本久久精品电影| 久久久久久久久免费视频| 亚洲综合自拍一区| 影音先锋久久资源网| 日本一级免费视频| 欧美精品黑人性xxxx| 91超碰免费在线| 国产在线精品日韩| 国产在线视频精品一区| 久久激情免费视频| 亚洲摸下面视频| 婷婷综合国产| av网站在线观看不卡| 亚洲欧美综合网| 免费观看成年人视频|