如何从一个列表到另一个列表匹配最佳匹配点?

2024-09-30 06:26:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个点列表,棋盘内角,实际上是从一张大约45-50度的角度拍摄的照片。你知道吗

Viewpoint of real board

我有另一份观点清单,这次是从一个空置董事会的鸟瞰图。你知道吗

model of board with points

第二个列表中有49个点,第一个列表中有不同数量的点,范围从20到49,这取决于遮挡、照明和其他各种因素。你知道吗

我的问题是。。。有没有什么方法可以将这些点匹配在一起,以找到最合适的

模型点:

[(119, 118), (359, 118), (599, 118), (839, 118), (239, 238), (479, 238), (719, 238), (119, 358), (359, 358), (599, 358), (839, 358), (239, 478), (479, 478), (719, 478), (119, 598), (359, 598), (599, 598), (839, 598), (239, 718), (479, 718), (719, 718), (119, 838), (359, 838), (599, 838), (839, 838), (239, 118), (479, 118), (719, 118), (119, 238), (359, 238), (599, 238), (839, 238), (239, 358), (479, 358), (719, 358), (119, 478), (359, 478), (599, 478), (839, 478), (239, 598), (479, 598), (719, 598), (119, 718), (359, 718), (599, 718), (839, 718), (239, 838), (479, 838), (719, 838)]

检测点:

[(580, 188), (918, 188), (750, 191), (847, 239), (402, 240), (493, 241), (670, 241), (581, 242), (487, 298), (581, 298), (674, 298), (874, 360), (679, 362), (786, 433), (683, 435), (476, 436), (581, 437), (371, 439), (908, 511), (689, 513), (580, 516), (470, 517), (357, 518), (1046, 598), (811, 601), (695, 603), (579, 604), (461, 606), (344, 609)]

我想通过将0-1之间的点除以模型的大小来标准化这些点,但是我只能从模型中获得维度数据,而不是检测到的点,因为它们可能位于图像帧中的任何位置。你知道吗

我也试着迭代这些点,当迭代这些点时,找出有多少点在当前点的预设区域内,然后这会给我一些“特征”,比如邻域点。。。你知道吗

我试过这样的方法。。。你知道吗

pointFeatures = []
        ptNum = 0
        for pt in model_points:
            inRangePoints = 0
            for i in range(len(model_points)):
                if euclidean1(pt, model_points[i]) < 150:
                    if pt != model_points[i]:
                        inRangePoints += 1
            pointFeatures .append((ptNum, inRangePoints, pt))

我得到模型点的以下信息。。。你知道吗

[(0, 2, (119, 118)), (1, 3, (359, 118)), (2, 3, (599, 118)), (3, 2, (839, 118)), (4, 4, (239, 238)), (5, 4, (479, 238)), (6, 4, (719, 238)), (7, 3, (119, 358)), (8, 4, (359, 358)), (9, 4, (599, 358)), (10, 3, (839, 358)), (11, 4, (239, 478)), (12, 4, (479, 478)), (13, 4, (719, 478)), (14, 3, (119, 598)), (15, 4, (359, 598)), (16, 4, (599, 598)), (17, 3, (839, 598)), (18, 4, (239, 718)), (19, 4, (479, 718)), (20, 4, (719, 718)), (21, 2, (119, 838)), (22, 3, (359, 838)), (23, 3, (599, 838)), (24, 2, (839, 838)), (25, 3, (239, 118)), (26, 3, (479, 118)), (27, 3, (719, 118)), (28, 3, (119, 238)), (29, 4, (359, 238)), (30, 4, (599, 238)), (31, 3, (839, 238)), (32, 4, (239, 358)), (33, 4, (479, 358)), (34, 4, (719, 358)), (35, 3, (119, 478)), (36, 4, (359, 478)), (37, 4, (599, 478)), (38, 3, (839, 478)), (39, 4, (239, 598)), (40, 4, (479, 598)), (41, 4, (719, 598)), (42, 3, (119, 718)), (43, 4, (359, 718)), (44, 4, (599, 718)), (45, 3, (839, 718)), (46, 3, (239, 838)), (47, 3, (479, 838)), (48, 3, (719, 838))]

我能用“邻居数”点来拟合数据的最佳拟合吗?我缺少数据点和数据点数量不均衡的事实对我的问题有什么不同吗?你知道吗

我试过使用,筛子,圆球,法兰等。。。。无济于事。你知道吗

我愿意接受建议。你知道吗


Tags: of数据方法in模型boardpt列表

热门问题