2016-08-15 2 views
1

Ich nenne ein Durchschnittsprofil das 1D-Signal durch Mittelwertbildung entlang der Zeilen oder Spalten in einem rechteckigen Bild erhalten.Wie berechne ich ein gemitteltes Profil in OpenCV

Px := Σ(y=1,H) I(x, y)/H 

und

Py := Σ(x=1,W) I(x, y)/W 

konnte ich nicht in der API finden, vielleicht indem sie nicht die entsprechende Terminologie verwendet wird.

Ich möchte keinen Boxfilter, nur einen Wert pro Zeile/Spalte. Die Summe statt des Durchschnitts ist gleich gut.

Antwort

2

können Sie die Funktion reduzieren verwenden: http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#reduce

using namespace cv; 

// Average over rows 
Mat mean_over_rows; 
reduce(input_mat, mean_over_rows, 0, CV_REDUCE_AVG); 
// Average over the columns 
Mat mean_over_cols; 
reduce(input_mat, mean_over_cols, 1, CV_REDUCE_AVG); 

Sie können die CV_REDUCE_SUM Flag verwenden, wenn Sie nur die summierten Projektion entlang der gewünschten Achsen wollen.

+0

Danke, das ist was ich brauche. Wird das Bild als Matrix betrachtet oder ist eine Konvertierung erforderlich? –

+0

Ich denke, es muss eine opencv Mat-Struktur sein. – Luca

+0

@YvesDaoust Wenn es Ihr Problem gelöst hat, können Sie auch die Antwort bitte akzeptieren? – Luca

Verwandte Themen