上周我得到中值坐标后,下一步是求解f(x)
相应代码
k=32 #防跳跃系数
for i in range(1,len1):
for j in range(len2):
# before,min_value = find_min(j,dp_matrix_value[i-1,j-k:j+1].tolist()[0],k)
before,min_value = find_min(j,get_list(dp_matrix_value[i-1,:],j-k,j+1),k,len2)
dp_matrix_value[i,j] = min_value + distance_2d(data1[i,0],data1[i,1],data2[j,0],data2[j,1])
dp_matrix_father[i,j] = before
print(i,"/",len1)
# for i in range(len1):
# temp = dp_matrix_value[len1-1-i,:].tolist()[0]
# minV = min(temp)
# pos = temp.index(minV)
# print(len1-1-i,"->",dp_matrix_father[len1-1-i,pos])
temp = dp_matrix_value[len1-1,:].tolist()[0]
minV = min(temp)
pos = temp.index(minV)
print(len1-1,"->",pos)
# pos = dp_matrix_father[len1-2,pos]
# print(pos)
# pos = dp_matrix_father[len1-3,int(pos)]
# print(pos)
for i in range(len1-1):
j = dp_matrix_father[len1-2-i,int(pos)]
print(len1-2-i,"->",j)
pos = j
可视化轮廓匹配度
其中,黄色的为原图,蓝色的是映射后的,可以看到而这匹配度还是很高的
可见对应关系还是比较准确的。