[英]OpenCV: Merging fitted shapes
如果我使用 OpenCV (Python) 並適合兩種形狀,如下所示:
a = cv2.fitEllipse(contours)
b = cv2.minAreaRect(contours)
a
和b
都表示為Box2D
對象,如下所示:
center: (x, y)
size: (width, height)
rotation: angle
a
和b
通常非常相似,但由於不同的擬合方法而不完全相同。 如何找到a
和b
的“平均值”形狀(橢圓)? 也就是說,最適合a
和b
的橢圓?
“平均”的定義可能不明確,並為您提供不同的解決方案。 如果這對您來說並不重要,因為您只想以任何方式平均形狀,下面是如何平均兩個矩形的簡單解決方案:
表示兩個矩形(a1, a2, a3, a4)
和(b1, b2, b3, b4)
。 假設我們想找到矩形(x1, x2, x3, x4)
最小化
矩形被參數化為
其中R
是二維旋轉矩陣, q_i
是其中之一
w
和h
未知矩形大小。 p
是未知矩形中心。
整個公式形成一個二次規划問題,未知數w, h, R, p
和二次約束R
是一個旋轉矩陣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.