发布于2022-08-29 20:04 阅读(1302) 评论(0) 点赞(2) 收藏(3)
我目前正在开发一个 OpenCV 项目。
所以基本上,我需要找到红线之间的长度。右边的照片是张孙镂空技术的产物。
在 OpenCV 中,点按列排序,然后按行排序。如何对数组进行排序,使其以形成连续线的方式排序?
我已经有两个数组,一个来自 x 坐标,一个来自 y 坐标。每个索引都表示红线之间的现有点。
这就是 OpenCV 自动存储积分的方式
X 和 Y 坐标必须组合并存储在一个数组中。然后,根据 X 坐标的升序对其进行排序。从那里,它将从最左边的角落开始。然后应用排序算法。
注意:此算法不适用于嘈杂的数据集。只有在连续的。假设 x 是您的 x 坐标的数组,而 y 是数组或 y 坐标
for x in range(len(x):
dataset.append([x[x],y[x]])
dataset.sort(key=lambda x:x[0])
dataset = np.array(dataset)
dataset = sorted(dataset, key = lambda point: self.euclidian_distance(point,dataset[0]))
def euclidian_distance(self, a,b):
return np.linalg.norm(a-b)
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/1687107/e789542b3848479ed917/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!