精品欧美一区二区三区在线观看 _久久久久国色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)

99久热在线精品996热是什么| 蜜臀视频在线观看| 成人在线视频亚洲| 成人少妇影院yyyy| 国产成人一区二区三区电影| 日韩亚洲欧美中文字幕| 精品福利一区| 欧美高清视频一二三区 | 亚洲色图88| 日韩av中文字幕在线免费观看| 亚洲老女人av| 丁香影院在线| 中文字幕在线视频一区| 免费成人看片网址| 精品人妻一区二区三区日产乱码| 美女久久网站| 欧美国产视频日韩| 一级在线观看视频| 豆花视频一区二区| 制服丝袜成人动漫| 人妻内射一区二区在线视频 | 国产精品亲子伦对白| 国产亚洲精品自在久久| 国产男男gay网站| 日韩av网站在线观看| 欧美华人在线视频| 久久爱一区二区| 免费av一区| 亚洲爱爱爱爱爱| av在线网址导航| 日韩大片欧美大片| 婷婷成人综合网| 真实国产乱子伦对白视频| 91精品大全| 国产欧美一区二区三区在线看蜜臀| 国产精品乱子乱xxxx| 国产免费久久久| 激情综合色丁香一区二区| 日韩美女免费观看| 看片网址国产福利av中文字幕| 亚洲香蕉网站| 九九热视频这里只有精品| 免费黄色激情视频| 色婷婷综合网| 日韩视频免费在线| 色婷婷粉嫩av| 影音先锋日韩在线| 久久精品国产视频| 潘金莲一级黄色片| 在线观看免费一区二区| 超碰日本道色综合久久综合| 国产视频精品免费| 欧美电影免费| 久久精品久久久久电影| 成人信息集中地| 国产精品精品国产一区二区| 日韩在线中文字幕| 日韩精品久久久久久久的张开腿让 | 亚洲三级视频| 2018国产精品视频| 51国产偷自视频区视频| 西西人体一区二区| 国产精品久久久久久久av电影| 在线观看国产区| 日韩电影在线一区二区三区| 国产精品久久久久福利| 中文字幕一区二区人妻痴汉电车| 日韩1区2区3区| 国产精品视频一| 国产精品久久久久久免费播放| 激情综合一区二区三区| 亚洲一区中文字幕| 高清毛片aaaaaaaaa片| thepron国产精品| 美女视频久久| www 日韩| 一区二区三区中文免费| 日本a视频在线观看| 中文一区一区三区高中清不卡免费| 精品久久久国产精品999| 欧美aⅴ在线观看| 欧美爱爱视频| 精品欧美久久久| 亚洲精品中文字幕在线播放| 精品一区二区三| 久久精品91久久久久久再现| 久一区二区三区| 玖玖玖国产精品| 91丨九色丨国产在线| 好吊视频一二三区| 国产无人区一区二区三区| 91九色国产ts另类人妖| 三级在线观看视频| 欧美一区国产二区| 美国黄色一级毛片| 亚洲精品a级片| 欧美有码在线视频| 国产视频一区二区三区四区五区| 99久久伊人久久99| 中文字幕中文字幕在线中心一区| 草草在线视频| 欧美久久一二区| aa一级黄色片| 欧美黄色一区| 国产精品久久久久久久久免费看| 精品国产乱码一区二区三| 久久久久久久久久久久久夜| 五月天激情图片| 蜜桃精品在线| 亚洲二区在线播放视频| 日韩精品久久久久久久的张开腿让| 亚洲精品美女91| 成人在线视频网| 九色视频在线观看免费播放| 一区二区三区 在线观看视频| 亚洲精品高清无码视频| 久久精品亚洲成在人线av网址| 中文字幕欧美精品在线| 全部毛片永久免费看| 国产精品中文欧美| 亚洲欧美国产不卡| 丝袜美腿诱惑一区二区三区| 亚洲成人精品久久| 91成人福利视频| 九九视频精品免费| 亚洲精品中文字幕在线 | 色系网站成人免费| 国产一级伦理片| 国产一在线精品一区在线观看| 日韩精品电影一区亚洲| 欧美色道久久88综合亚洲精品| 天天干天天av| 日本一区二区高清不卡| 日本一区二区不卡| 欧美孕妇性xxxⅹ精品hd| 亚洲国产日韩在线一区模特| 天天操精品视频| 欧美电影《睫毛膏》| 国产精品一区二区性色av| 黄色影院在线播放| 色狠狠桃花综合| 免费观看av网站| 香蕉久久a毛片| 欧美精品欧美精品系列c| 在线观看网站免费入口在线观看国内 | 国产欧美综合在线| 亚洲 欧美 日韩系列| 成人三级视频| 国产欧美一区二区三区视频| 欧美jizz18hd性欧美| 在线电影国产精品| 午夜国产福利视频| 国产一区二区三区四区在线观看| 伊甸园精品99久久久久久| 天堂久久一区| 欧美人交a欧美精品| 成人午夜精品福利免费| 性做久久久久久久免费看| 五月天激情小说| 亚洲综合社区| 日韩国产欧美一区| 成人国产激情| 久久夜色撩人精品| 亚洲精品久久久蜜桃动漫 | 成人在线免费观看av| 九一精品国产| 国产在线999| 欧美激情成人动漫| 亚洲精品视频网上网址在线观看| 最新中文字幕一区| 中文字幕av一区二区三区免费看 | 日本一区二区视频在线观看| av在线网址导航| 国产精品激情| 免费不卡亚洲欧美| av一级久久| 777精品视频| 在线视频二区| 精品人在线二区三区| 久久精品无码av| 中文字幕一区二区三区在线播放| 佐佐木明希电影| 久久狠狠婷婷| 好色先生视频污| 美国成人xxx| 国产精品私拍pans大尺度在线| 国产乱色在线观看| 亚洲欧美国产一区二区三区| 亚洲在线免费观看视频| 亚洲成人免费电影| 9.1片黄在线观看| 成人av在线网站| 午夜国产一区二区三区| 亚洲午夜一区| 一区二区精品在线| 精品嫩草影院| 成人黄色免费片| 日韩伦理在线一区| 久久国产精品偷| 蝌蚪视频在线播放| 日韩欧美一级片| 日本一区二区三区久久| 亚洲二区在线观看| 亚洲二区在线播放| 久久精品欧美一区二区三区麻豆| 少妇极品熟妇人妻无码| 免费看日韩精品| 欧美日韩亚洲一| 中文字幕av亚洲精品一部二部| 欧美一区二区三区电影在线观看| 国产成年精品| 国产精品主播视频| 在线黄色的网站| 性欧美暴力猛交69hd| 超碰免费公开在线| 一区二区三区www| 日本国产在线| 亚洲第一页自拍| www天堂在线| 91精品国产高清一区二区三区| 黄色污污视频软件| 色视频在线看| 午夜影视日本亚洲欧洲精品| 久久久久麻豆v国产| 久久久久九九视频| 国产又黄又粗又猛又爽的视频| 国产精品一区二区三区乱码| 久久久久xxxx| 蜜桃视频一区二区三区| 超碰影院在线观看| 久久精品1区| 日韩免费毛片视频| 性欧美videos另类喷潮| 女性女同性aⅴ免费观女性恋| 国内精品福利| 亚洲国产一二三精品无码| 欧美在线黄色| ijzzijzzij亚洲大全| 伊人青青综合网| 夜夜爽99久久国产综合精品女不卡| 精品视频免费| 亚洲欧美日韩在线综合| 日本欧美视频| 一区不卡字幕| 午夜精品久久99蜜桃的功能介绍| 免费成人深夜夜行网站视频| 亚洲成人av| 日韩不卡一二区| 国产精品啊啊啊| 六月丁香激情网| 久久久久久久尹人综合网亚洲| 国产成人无码a区在线观看视频| 91久久亚洲| 无码人妻丰满熟妇区五十路百度| 久久久蜜桃一区二区人| 国产日产欧美视频| 日韩不卡手机在线v区| 日韩爱爱小视频| 国产精一区二区三区| 农村末发育av片一区二区| www..com久久爱| 欧美丰满老妇熟乱xxxxyyy| 国产精品水嫩水嫩| 综合五月激情网| 亚洲国产成人va在线观看天堂| 日本在线小视频| 色综合 综合色| 一级黄在线观看| 精品久久久久久久久久久久久久久| 日韩一级中文字幕| 一区二区三区 在线观看视| 久草免费在线| 97久久精品人人澡人人爽缅北| 悠悠资源网亚洲青| 成人久久18免费网站图片| 欧美影院精品| 欧美精品123| 香蕉久久网站| 欧美 日韩 国产一区| 久久99国产精品麻豆| 黄色av网址在线观看| 亚洲国产精品高清| 国产一级av毛片| 欧美在线观看视频在线| 国产福利免费视频| 亚洲一区二区久久久| 中文在线观看免费| 日韩免费av在线| 亚洲精品一二三**| 日本在线播放不卡| 国产精品av久久久久久麻豆网| 苍井空浴缸大战猛男120分钟| 久久成人综合网| ass精品国模裸体欣赏pics| 1024亚洲合集| 亚洲熟妇无码乱子av电影| 日韩一区二区三区在线视频| 欧美婷婷久久五月精品三区| 久热精品视频在线观看| 日韩在线影院| 国产精品初高中精品久久| 日韩电影免费在线观看| 成人免费毛片网| 国产精品夜夜嗨| 性爱在线免费视频| 色综合久久88色综合天天免费| 国产白浆在线观看| 中文字幕日韩精品有码视频| segui88久久综合9999| 91亚洲精品久久久| 国产精品一区二区av日韩在线| 台湾无码一区二区| 精品无人码麻豆乱码1区2区| 日本少妇xxxxx| 精品成人av一区| 亚洲产国偷v产偷v自拍涩爱| x99av成人免费| 国产成人免费9x9x人网站视频| 精品产品国产在线不卡| 欧美日韩亚洲一区三区| 911福利视频| 国产日韩欧美精品一区| 亚洲伊人成人网| 亚洲丁香婷深爱综合| 丁香影院在线| 成人区精品一区二区| 欧美黄在线观看| www,av在线| 中文字幕亚洲一区二区va在线| 涩涩视频在线观看| 亚洲欧美日韩中文在线| 一区二区电影免费观看| 精品欧美一区二区精品久久| 亚洲无线视频| 国产清纯白嫩初高中在线观看性色| 综合欧美亚洲日本| 97人妻精品一区二区三区软件| 最近2019中文字幕第三页视频| 国产成人久久精品麻豆二区| 日本一区二区三区四区高清视频| 久久中文欧美| av中文字幕免费观看| 在线免费观看成人短视频| 国产51人人成人人人人爽色哟哟 | 色香欲www7777综合网| 欧美中日韩免费视频| 蜜桃久久久久久久| 亚洲一区电影在线观看| 91精品国产品国语在线不卡| 自由的xxxx在线视频| 国产精品乱码一区二区三区| 影音先锋久久资源网| 亚洲欧美日本一区| 色悠悠亚洲一区二区| 国产裸舞福利在线视频合集| 国产精品免费看久久久香蕉| 亚洲成人二区| 免费看毛片的网站| 欧美日韩视频免费播放| 青青草超碰在线| 国产精品一区二区3区| 一区二区三区在线电影| 欧美久久久久久久久久久| 精品久久久免费| 国产黄色在线播放| 亚洲一区二区三区视频播放| 影音国产精品| 韩国三级hd中文字幕| 这里是久久伊人| 91九色国产在线播放| 欧美动漫一区二区| 久久成人免费日本黄色| 国产一级免费av| 亚洲欧美中文另类| 99久久久国产| 国产精品视频一区二区三区四区五区| 国产女主播视频一区二区| 国产精品永久久久久久久久久| 久久久噜噜噜久久久| 久久av电影| 台湾佬美性中文| 91黄视频在线| 日本一级理论片在线大全| 奇米视频888战线精品播放| 国产一区二三区| 在线能看的av| 久久97久久97精品免视看| 杨幂一区二区三区免费看视频| 中文字幕精品一区二区三区在线| 亚洲最大色网站| 自拍视频在线网| 麻豆精品视频| 国产盗摄一区二区三区| 无码人妻精品一区二区50| 欧美国产第一页| 日韩免费特黄一二三区| 加勒比精品视频| 日韩欧美成人午夜| 黄色成人在线视频| 欧美一区二区三区爽大粗免费|