2013-05-25 99 views
1

哪種方法是檢索子陣列adjustROI()submat()更快?我想知道它,因爲im 與java一起工作,我得到了1600 * 1200大小的許多圖像的循環。方法性能比較

在此先感謝。

PS:對於任何人,誰已經注意到,同一職位在OpenCV的Q &的論壇存在:既然沒有人能夠回答這個問題,我決定把它#2,增加人的回答中有機會。

+6

爲什麼你不做基準? –

+0

我以爲有人會知道,因爲他已經測試過它。如果沒有,我會盡快發佈我的基準。 – kiltek

+0

我不明白爲什麼人們downvote。這個問題需要所謂的「知識共享」。 – kiltek

回答

1

最好的想法是@Ilya Kurnosov建議的基準測試。 但是,我預測幾乎基於下面的來源無差異。 與實際發生的工作相比,Mat創建和JNI調用開銷似乎很大,但基準測試可能證明我錯了。

這兩種方法的一個重大問題是,如果您要逐個像素地滑動一個矩形,那麼您將創建近兩百萬個對象。 (OTOH你可以在C++中做到這一點,而無需創建任何新對象,所以如果它的速度很快......)

public Mat submat(int rowStart, int rowEnd, int colStart, int colEnd) 
{ 

    Mat retVal = new Mat(n_submat_rr(nativeObj, rowStart, rowEnd, colStart, colEnd)); 

    return retVal; 
} 

public Mat adjustROI(int dtop, int dbottom, int dleft, int dright) 
{ 

    Mat retVal = new Mat(n_adjustROI(nativeObj, dtop, dbottom, dleft, dright)); 

    return retVal; 
}