这里的CV 函数实现的并不直观 。
可以考虑使用skimage进行矩阵求解:
如下,这里使用了SimilarityTransform进行了约束,如果确定你的使用场景是透视的需要使用ProjectiveTransform进行求解,求解后的矩阵可以打印出来 。
from skimage import transform as trans
import numpy as np
src = np.array([
[38.2946, 51.6963],
[73.5318, 51.5014],
[56.0252, 71.7366],
[41.5493, 92.3655],
[70.7299, 92.2041]], dtype=np.float32)
dst = np.array([
[38.2946, 51.6963],
[73.5318, 51.5014],
[56.0252, 71.7366],
[41.5493, 92.3655],
[70.7299, 92.2041]], dtype=np.float32)
tform_simi = trans.SimilarityTransform()
res = tform_simi.estimate(dst, src)
M = tform_simi.params
print("simi trans report")
print(res)
print(M)
print('=' * 12)
https://github.com/leaf918/Robust-Partial-Fingerprint-Alignment/blob/master/rd_estimate_Euclidean_transform.py
【 在 toadstone 的大作中提到: 】
: source points:
: a1_left_top = [-2.220446049250313e-16, 0.0]
: a1_left_bottom = [-2.220446049250313e-16, 2000.9083170876493]
: ...................
--
FROM 36.110.197.*