程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Python OpenCV:基于最近邻的排序点

发布于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黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

2 0
收藏该文
已收藏

评论内容:(最多支持255个字符)