OpenCV发行版4.5.1包含了BEBLID,这是一个新的本地特性描述符。
opencv4.5.1中最令人兴奋的特性之一是BEBLID(Boosted effective Binary Local Image Descriptor),它是一种新的描述符,能够在减少执行时间的同时提高图像匹配精度!本文将向你展示一个具体的例子,所有源代码都存储在此GitHub存储库中:
https://github.com/iago-suarez/beblid-opencv-demo/blob/main/demo.ipynb
在这个例子中,我们将通过一个视角的改变来匹配这两个图像:
首先,确保安装了正确版本的OpenCV。
在你喜爱的环境中,你可以使用以下工具安装和检查OpenCV Contrib版本:
pip install "opencv-contrib-python>=4.5.1"
python
>>> import cv2 as cv
>>> print(f"OpenCV Version: {cv.__version__}")
OpenCV Version: 4.5.1
在Python中加载这两个图像所需的代码是:
import cv2 as cv
# Load grayscale images
img1 = cv.imread("graf1.png", cv.IMREAD_GRAYSCALE)
img2 = cv.imread("graf3.png", cv.IMREAD_GRAYSCALE)
if img1 is None or img2 is None:
print('Could not open or find the images!')
exit(0)
为了评估我们的图像匹配程序,我们需要在两幅图像之间进行正确的几何变换。
这是一个称为单应性的3x3矩阵,当我们将第一个图像中的一个点(在齐次坐标中)相乘时,它将返回第二个图像中该点的坐标。让我们加载它:
# Load homography (geometric transformation betw