#!/usr/bin/env python
-# test program for the "perspective" geometric tranform element
+# test program for the "perspective" geometric transform element
-import cv
+import cv2
+import numpy as np
import gi
gi.require_version('Gst', '1.0')
top_x_shift = 200
width, height = 800, 480
- corners = [(0, 0), (width, 0), (width, height), (0, height)]
- target = [(top_x_shift, 0), (width - top_x_shift, 0), (width, height), (0, height)]
+ corners = np.array([(0, 0), (width, 0), (width, height), (0, height)], dtype=np.float32)
+ target = np.array([(top_x_shift, 0), (width - top_x_shift, 0), (width, height), (0, height)], dtype=np.float32)
- mat = cv.CreateMat(3, 3, cv.CV_64F)
- cv.GetPerspectiveTransform(corners, target, mat)
+ mat = cv2.getPerspectiveTransform(corners, target)
+ ret, inv_mat = cv2.invert(mat)
- inv_mat = cv.CreateMat(3, 3, cv.CV_64F)
- cv.Invert(mat, inv_mat)
+ return inv_mat.flatten()
- matrix = [inv_mat[j, i] for j in range(mat.rows) for i in range(mat.cols)]
- return matrix
def main():