c 計算delta 斜橢圓外接正矩形計算方法

2021-10-13 18:44:22 字數 2555 閱讀 3081

人臉檢測資料集fddb,涉及到將原標籤中的橢圓形狀轉化為矩形框用於人臉檢測,所以整理其中生成橢圓外接矩形的方法與**。

ref 1:如何計算包圍傾斜橢圓的最小矩形

explanation here:

二次曲線的二次方程可以寫成以下形式: $$ax^2+2bxy+cy^2+2dx+2ey+f=0$$

橢圓標準方程: $$frac+frac = 1$$

通過平移和旋轉,

$$x=x'costheta-y'sintheta+h,y=x'sintheta+y'costheta+k$$

此方程可以變形為: $$a'x'^2 + 2b'x'y'+c'y'^2+2d'x'+2e'y'+f'=0$$

其中$a'=acos^2theta+2bcosthetasintheta+csin^2theta$

$2b'=2bcos2theta-(a-c)sin2theta$

$c'=asin^2theta-2bcosthetasintheta+ccos^2theta$

$d'=2ahcostheta+2b(kcostheta+hsintheta)+2cksintheta+2dcostheta+2esintheta$

$e'=-2ahsintheta+2b(hcostheta-ksintheta)+2ckcostheta-2dsintheta+2ecostheta$

$f'=ah^2+2bhk+ck^2+2dh+2ek+f$

記錄$$a+c=a'+c'=h b^2-ac=b'^2-a'c'=delta left |begin a &b &d b &c &e d &e &f endright|= left |begin a' &b' &d' b' &c' &e' d' &e' &f' endright|=delta $$

二次曲線方程係數之間的三個基本不變數。

當$delta = 0$時, 二次曲線蛻化

$delta < 0$時,點橢圓

$delta > 0$時,相交兩直線

$delta = 0$時,平行兩直線(包括相重)

當$delta ne 0$時

當 $delta < 0$ 時,二次曲線為橢圓(有可能為虛橢圓)。

當 $delta > 0$ 時,二次曲線為雙曲線。

當 $delta = 0$ 時,二次曲線為拋物線。

coefficients(conic)

coefficients command, that displays the coefficients of the conic, using the form

$$ax^2 + by^2 + c +dxy + ex + fy = 0$$

$a=a, b=d/2.0, c=b, d=e/2.0, e=f/2.0, f=c$

假設 二次曲線的二次方程為

$$ax^2+2bxy+cy^2+2dx+2ey+f=0$$

求:該橢圓的最小包圍正矩形(斜的包圍矩形)

路徑:就是要求出斜橢圓的 $x_, x_, y_, y_$

(1)用直線 $y=k$ 去截橢圓, 相交就是兩個交點,相切就是乙個交點,不相交就是無解。

故可以通過一元二次方程判別式來求解。

顯然,我們要求相切的情形。

橢圓方程可以看成關於$x$的一元二次方程:

$$ax^2+2(by+d)x+(cy^2+2ey+f)=0$$

由判別式 $delta=0$, 我們得到:

$$(by+d)^2-a(cy^2+2ey+f)=0$$

$$(b^2-ac)y^2+2(bd-ae)y+(d^2-af)=0$$

記 $delta=b^2-ac, beta=bd-ae, gamma=d^2-af$

則可以求得: $$y_ = frac}$$ $$y_ = frac}$$

(2)同理,用直線 $x=h$ 去截橢圓, 相交就是兩個交點,相切就是乙個交點,不相交就是無解。

橢圓方程可以看成關於$y$的一元二次方程:

$$cy^2+2(bx+e)x+(ax^2+2dy+f)=0$$

由判別式 $delta=0$, 我們得到:

$$(bx+e)^2-c(ax^2+2dx+f)=0$$

$$(b^2-ac)x^2+2(be-cd)x+(e^2-cf)=0$$

記 $delta=b^2-ac, alpha=be-cd, lambda=e^2-cf$

則可以求得: $$x_ = frac}$$ $$x_ = frac}$$

(3)最後得到矩形的四個頂點為$(-x_, -y_), (x_, -y_), (x_, y_), (-x_, y_)$

(4)用geogebra得到的結果

利用函式 coefficients(conic) 得到係數 轉換後,直接計算即可得到橢圓的最小包圍正矩形。

斜滑塊斜導柱計算公式 斜導柱長度計算

斜度 a一般取 5 8 度左右斜頂脫模行程 s 扣位的距離 2 3mm 安全距離 計算公式 s l x tan a 需要別人解答的題目 在斜導柱抽芯中,已知模板 h 25 斜導柱大 12。導柱階梯大小 16。抽芯角度 為度,抽芯間隔 s 5mm,請計算斜導柱長度。最合適的解答 模具滑塊的工作原理以及...

斜積分計算

最近在參考opencv自己實現haar特徵,對積分圖的計算稍微整理了一下,累加積分和平方積分就不說了,主要分析一下斜積分。這是opencv的實現方式,一下子沒整明白範圍,所以自己畫了個圖比劃了一下。從上圖看去,要計算點 x,y 上面的面積,需要遍歷上面所有的點,但是對區域中的點進行遍歷時,並不是每行...

斜滑塊斜導柱計算公式 斜齒輪加直齒輪式做法

借師說禪 當大家都哭的時候,要允許有人不哭,當大家都笑的時候,要允許有人不笑 當大家都愛的時候,要允許有人不愛 別以為這個量少,他什麼裝置都沒有,就幾個模具工。公司是他姐夫的,注塑廠,代加工企業,接到新專案後,模具部分交由他做,弄了車間配模,模具主要是自己生產。從辦公室和掛牌上看出,曾經輝煌過。當時...