簡體   English   中英

OpenCV:合並擬合形狀

[英]OpenCV: Merging fitted shapes

如果我使用 OpenCV (Python) 並適合兩種形狀,如下所示:

a = cv2.fitEllipse(contours)
b = cv2.minAreaRect(contours)

ab都表示為Box2D對象,如下所示:

center: (x, y)
size: (width, height)
rotation: angle

ab通常非常相似,但由於不同的擬合方法而不完全相同。 如何找到ab的“平均值”形狀(橢圓)? 也就是說,最適合ab的橢圓?

“平均”的定義可能不明確,並為您提供不同的解決方案。 如果這對您來說並不重要,因為您只想以任何方式平均形狀,下面是如何平均兩個矩形的簡單解決方案:

表示兩個矩形(a1, a2, a3, a4)(b1, b2, b3, b4) 假設我們想找到矩形(x1, x2, x3, x4)最小化

<code>sum |xi - ai|^2 + sum |xi - bi|^2</code>

矩形被參數化為

<code>x_i = R q_i + c</code>

其中R是二維旋轉矩陣, q_i是其中之一+-w, +-h wh未知矩形大小。 p是未知矩形中心。

整個公式形成一個二次規划問題,未知數w, h, R, p和二次約束R是一個旋轉矩陣。

暫無
暫無

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

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