最近我花了不少时间来实现Suzuki-Abe轮廓检测算法(1985) 的纯C#版本,适用于Unity。
目标是从Texture2D数据中直接提取轮廓,而不依赖OpenCV或原生插件。
我想支持的几点内容包括:
- 提取外轮廓和孔洞
- 父子轮廓层次结构
- 4连通性和8连通性
- Unity友好的坐标
- 像素艺术的边界提取
示例使用基本如下:
List<轮廓>轮廓 =
ContourDetector.FindContours(
texture,
像素 => 像素.a > 0);
你还可以将轮廓像素转换为像素对齐的边界多边形:
List<Vector2Int>边界 =
轮廓.ToPixelBoundary();
轮廓可以用于:
- 精灵轮廓生成
- 网格生成
- 多边形碰撞器
- 生成性几何学
- 图像分析工具
- 像素精确边界提取
我很好奇其他人如何在Unity中处理轮廓提取或图像向量化。
(也将其转换为一个小的Unity包后完成了实现。)
评论 (0)