OpenCV中的Homography矩阵

时间:2015-01-02 11:02:43

标签: python opencv homography

我正在创建一个应用程序,通过将它与单应矩阵相乘,我可以找到图像的鸟瞰视角。我已经阅读了很多关于它的内容,似乎乘以矩阵的函数是 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)

我正在应用单应法的图像:

Source Image

使用 warpPerspective 的结果是:

Result Image

可以看出,结果图片的左上角有一小部分。

非常感谢您的帮助!!

1 个答案:

答案 0 :(得分:1)

我认为这与你的a矩阵有关,因为用

调用你的代码
a = np.array([[1, 0, 0],
              [0, 1, 0],
              [0, 0, 1]],
             dtype=np.float32)

工作正常。