如何使用paper.js创建的opencv(python)中的bezier曲线绘制路径

问题描述 投票:1回答:1

我有很多与图像相关的路径,用paper.js应用程序绘制,它产生一个格式为的json对象:

[[[x,y], [handle1_x, handle1_y], [handle2_x, handle2_y]],  ...].

因此,对于多边形上的每个点(“路径”),我有x,y和控制曲率的手柄的概念(“bezier”)。

如何在python中将这些路径转换为轮廓,以便在图像上绘制这些路径(获取掩码)?

python bezier paperjs
1个回答
2
投票

OpenCV中的轮廓是一个点数组,std::vector<cv::Point>

所以我想最简单的方法是在你的json文件中输出曲线的所有点的列表,(使用Paper.js path.getPointAt() - 从0到偏移到“得到曲线的所有点/像素”)然后创建OpenCV中的std::vector<cv::Point>

这会创建更大的json文件(曲线像素列表将大于曲线点和句柄列表),除非你真的有大量的数据它不应该是一个问题。如果这是一个问题,你也可以使用类似OpenCV-Beziers(我从未使用它)来计算OpenCV方面的点列表。

© www.soinside.com 2019 - 2024. All rights reserved.