话不多说,直接上代码,可以用的话别忘了请喝可乐!(手动笑哭脸)
【用法】
第45、46行的输入:
img1 = cv2.imread('sift/3.jpg')
img2 = cv2.imread('sift/4.jpg')
分别是两幅图像,改成你打算要配准的两幅图像即可(修改图像路径)。
python的跨平台特性好,windows和macOS系统都可用。输出:三幅图像。窗口1、窗口2是你输入的两幅图像,Result窗口展示的是本算法结果,即把img2移动变换到与img1匹配时的样子。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 23 16:37:02 2019
SIFT
@author: youxinlin
"""
import numpy as np
import cv2
def sift_kp(image):
gray_image = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
sift = cv2.xfeatures2d_SIFT.create()
kp,des = sift.detectAndCompute(image,None)
kp_image = cv2.drawKeypoints(gray_image,kp,None)
return kp_image,kp,des
def get_good_match(des1,des2):
bf = cv2.BFMatcher()
matches = bf.knnM

本文介绍了一个使用Python实现的基于SIFT算法的图像配准过程,利用仿射变换将一幅图像调整到与另一幅图像匹配。代码适用于Windows和macOS系统,通过读取两幅图像,输出配准后的结果。文中提到,理解单应性矩阵、KNN和RANSAC算法对于深入理解该程序至关重要。同时,提供了显示关键点配对结果的方法,并提醒读者部分代码来源于网络,用于学习交流。
&spm=1001.2101.3001.5002&articleId=89476175&d=1&t=3&u=91ed1b06428e45b8ba9bbce1cbf68038)
1万+

被折叠的 条评论
为什么被折叠?



