python - Voronoi 图的等高线坐标
问题描述
我目前正在做一个项目。对于形状为 1000*1000 的图像中给定的一组点坐标,我想计算与这些点相关的 Voronoi 域边界上的像素坐标。
https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.Voronoi.html
如何获取那些黑线和虚线的坐标列表(在 (0,0) 到 (2, 2) 的区域内)。
比如(0, 0.5), (0.5, 0.5), (1.0, 0.5), (1.5, 0.5), (2.0, 0.5)。也许它还需要一些后期处理,因为这些坐标代表图像中的像素位置。
解决方案
如果您可以摆脱纯 OpenCV 中的实现,则可以通过在点云z = (x - px)^2 + (y - py)^2
的每个点处渲染(例如,在 OpenGL 或 DirectX 中)抛物面,(px, py)
打开 z 缓冲,并使用每个抛物面都有不同的颜色。这是有效的,因为根据定义,每个 Voronoi 域的点都用它们最接近的顶点的颜色着色,并z = (x - px)^2 + (y - py)^2
准确地表示该距离(平方)。因此,您在整个图像上渲染所有抛物面,并让 z 缓冲区告诉您哪个在哪个前面,因此最接近每个顶点。
一旦你渲染了图像,通过它来查找哪些像素位于不同颜色区域的边界上会产生你的答案。
推荐阅读
- python - python 与 MicroPython 中的 time.time()
- sql - 使用 bigint 列连接的 HIVE SQL 查询未返回任何结果
- java - @KafkaListener 的单元测试 - 空指针异常
- reactjs - 过滤状态数据不能正常工作 - React (CRA)
- javascript - 使用 webpack 时防止加载每个 .js 文件
- elasticsearch - 如何在不重新索引的情况下对 Elasticsearch 中的关键字字段进行不区分大小写的搜索?
- php - 使用 imageUrl 不显示图像,一切似乎都正确.PHP
- video - 通过 API 上传的 Google 相册会在处理后自动删除某些视频
- python - Pylint-Django:AttributeError:“下标”对象没有属性“名称”
- python - Python 中的因果影响分析(A/B 测试)