У меня есть несколько двоичных изображений прямоугольников, и я хочу оценить матрицу преобразования между двумя изображениями:
Как вы можете видеть на изображении, я извлекаю угловые точки затем я применяю функцию cv2.getAffineTransform для opencv2. Но при применении матрицы преобразования к первому изображению я не получаю второе. Ошибка огромна, поэтому она не может быть связана с неточностью матрицы преобразования или извлеченных угловых точек.
Вот функция, которую я использую:
def affine_trans(img1,img2):
pts1 = np.float32(get_corners(img1))
pts2 = np.float32(get_corners(img2))
M = cv2.getAffineTransform(pts1,pts2)
dst = cv2.warpAffine(img1,M,(960,540))
return dst, M