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

时间:2018-02-28 16:43:57

标签: python bezier paperjs

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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