我正在创建一个应用程序,通过将它与单应矩阵相乘,我可以找到图像的鸟瞰视角。我已经阅读了很多关于它的内容,似乎乘以矩阵的函数是 warpPerspective()。虽然当我这样做时,生成的图像是一个图像,其中所有像素都为零,只有第一行不是。
请为我提供一种将单应矩阵乘以图像的方法,无论是C ++还是Python。
以下是我使用的代码:
import cv2
import numpy as np
tilt = np.pi * 35 / 180
a = np.zeros((3, 3))
a[0][0] = 1
a[1][1] = np.sin(tilt)
a[1][2] = -np.sin(tilt)
a[2][2] = np.cos(tilt)
a[2][2] = np.cos(tilt)
src = cv2.imread("S2.jpg")
width, height, depth = src.shape
output = cv2.warpPerspective(src, a, (width, height))
cv2.imwrite("results.png", output)
我正在应用单应法的图像:
使用 warpPerspective 的结果是:
可以看出,结果图片的左上角有一小部分。
非常感谢您的帮助!!
答案 0 :(得分:1)
我认为这与你的a
矩阵有关,因为用
a = np.array([[1, 0, 0],
[0, 1, 0],
[0, 0, 1]],
dtype=np.float32)
工作正常。