2013-07-17 29 views
3

我正在嘗試使用OpenCV在圖像中某些對象周圍獲得的旋轉矩形的長寬比設置閾值。爲了比較旋轉矩形的寬高比和閾值,我需要考慮旋轉矩形的長邊和短邊的比例。OpenCV中RotatedRect的相對大小的模糊性

我對此感到困惑:OpenCV中的約定是什麼? rotateRectanlge.size.width總是小於rotateRectangle.size.height?即,旋轉矩形的寬度總是分配給OpenCV中旋轉矩形的兩個維中較小的一個?

我試着運行一些代碼來找到答案。而且,它看起來像rotateRectangle.size.width實際上是一個rotateRectangle的較小尺寸。但是我仍然希望有人遇到類似的情況。

編輯:我使用fitEllipse得到旋轉的矩形和我的版本的OpenCV是2.4.1。

請幫忙!

回答

2

有爲旋轉矩形本身沒有約定,如the documentation

的類表示旋轉的平面上(即,不右上方)的矩形。每個矩形由中心點(質心),每邊的長度(由cv :: Size2f結構表示)和旋轉角度(以度爲單位)指定。

但是,你沒有指定哪些功能或操作創建旋轉rects - 例如,如果你使用fitEllipse這可能是因爲存在着傾向於使用較大的算法的一些內部細節(或更小)尺寸作爲寬度(或高度)。

也許你可以評論或編輯你的問題與更多的信息。現在,如果你想要更長的比例:更短的尺寸,你需要專門測試哪個更長。

編輯

看着OpenCV的源代碼後,fitEllipse功能包含以下代碼

if(box.size.width > box.size.height) 
{ 
    float tmp; 
    CV_SWAP(box.size.width, box.size.height, tmp); 
    box.angle = (float)(90 + rp[4]*180/CV_PI); 
} 

所以,至少在這個實施,似乎寬度總是被當作更短的尺寸。但是,我不會依賴在未來的實施中保持真實。

+0

嗨,謝謝你的回覆。是的,我正在使用fitEllipse來獲取旋轉的矩形。你知道是否有任何適合ELlipse將較大尺寸指定爲高度的約定? 當然,在考慮寬高比之前,我可以進行測試以找到更大的尺寸。但它有助於瞭解fitEllipse是否有這樣的約定。如果您對此有任何想法,請讓我知道! – Ekta

+0

@Ekta答案更新... –

+1

謝謝!你是對的。你編輯的答案符合我的觀察與一些數據。所以,fitEllipse將較短的尺寸作爲寬度。感謝羅傑。這非常有幫助! – Ekta