我目前在float32的numpy数组中内置了两个匹配点集:
points1 =
[[ 346.70220947 9076.38476562]
[ 922.99554443 9096.4921875 ]
[ 776.96466064 9108.79101562]
[ 449.0173645 9080.61816406]
[ 2843.19433594 1226.93212891]
[ 779.95275879 9094.76855469]
[ 451.46853638 9092.5078125 ]
[ 3981.4621582 1237.50964355]
[ 132.38700867 9086.7890625 ]
[ 819.10943604 8286.74023438]
[ 1963.64025879 1220.06921387]
[ 1253.79321289 9095.75292969]]
points2 =
[[ 55110.36328125 9405.07519531]
[ 55686.71875 9423.63574219]
[ 55540.8515625 9435.80078125]
[ 55212.58203125 9408.00585938]
[ 57598.76171875 1551.92956543]
[ 55543.78125 9421.88769531]
[ 55214.40625 9420.46972656]
[ 58737.41796875 1561.14831543]
[ 54895.9296875 9414.58203125]
[ 55581.87109375 8613.87011719]
[ 56718.76953125 1546.02197266]
[ 56017.8125 9422.52050781]]
我试着跑:
^{pr2}$这样就可以生成一个仿射矩阵(.tfi)。世界文件是为地理信息系统软件,将这些项目的动态。在
目前我收到一个错误:
Both input images must have either 8uC1 or 8uC3 type in function cvEstimateRigidTransform
我不太清楚这是怎么回事。我想我可以用两个点集作为参数,只要我有6个或更多对。在
任何想法或建议将不胜感激!在
我也有同样奇怪的错误,但是在Java中。在我的例子中,
estimateRigidTransform
似乎无法识别出我给出的两张Mat图像实际上是2D点集。所以我应用了一个解决方法,将匹配点从MatOfKeyPoint
转换为MatOfPoint2f
类型。在以下是完整的Java代码(它不是Python,但可能会对您有所帮助):
更新:过滤匹配项很重要,因为如果不过滤,则转换后可能会得到一个空数组。在
相关问题 更多 >
编程相关推荐