簡體   English   中英

如何在用paper.js創建的opencv(python)中使用貝塞爾曲線繪制路徑

[英]how to draw paths with bezier curves in opencv (python) created with paper.js

我有許多與圖像相關聯的路徑,都是通過paper.js應用程序繪制的,這些路徑會生成以下格式的json對象:

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

因此,對於多邊形上的每個點(“路徑”),我都有x,y和控制曲率的手柄的概念(“貝塞爾曲線”)。

如何在python中將這些路徑轉換為輪廓以在圖像上繪制這些路徑(以獲取蒙版)?

OpenCV中的輪廓是點數組,即std::vector<cv::Point>

因此,我想最簡單的方法是在json文件中輸出曲線所有點的列表(使用Paper.js path.getPointAt() -從0到offset以獲取曲線的所有點/像素)然后在OpenCV中創建一個std::vector<cv::Point>

但是,這將創建更大的json文件(曲線像素的列表將大於曲線點和手柄的列表),除非您確實有大量數據,否則這不是問題。 如果有問題,您也可以使用類似OpenCV-Beziers (我從未使用過)之類的東西來計算OpenCV端的點列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM