Unterschied zwischen OpenCV Typ CV_32F und CV_32FC1

9

Ich würde gerne wissen, ob es einen Unterschied zwischen den OpenCV-Typen CV_32F und CV_32FC1 gibt? Ich weiß bereits, dass 32F für einen "32-Bit-Gleitkomma" und C1 für "Einzel-Kanal" steht, aber weitere Erklärungen wären willkommen.

Wenn ja, wie unterscheiden sie sich / welche sollte ich in welchen Fällen verwenden? Wie Sie vielleicht wissen, können OpenCV-Typen sehr schwierig werden ...

Vielen Dank im Voraus für Ihre Hilfe!

    
mlnthr 30.05.2016, 16:41
quelle

1 Antwort

25

Der Wert für CV_32F und CV_32FC1 ist 5 (siehe unten), also gibt es keinen Unterschied.

Allerdings:

  • CV_32F definiert die Tiefe jedes Elements der Matrix, während
  • CV_32FC1 definiert sowohl die Tiefe jedes Elements als auch die Anzahl der Kanäle.

Ein paar Beispiele ...

Viele Funktionen, z.B. Sobel oder convertTo , benötigen Sie die Zieltiefe (und nicht die Anzahl der Kanäle), also Sie tu:

%Vor%

Wenn Sie jedoch beispielsweise eine Matrix erstellen, müssen Sie auch die Anzahl der Kanäle angeben:

%Vor%

Grundsätzlich sollten Sie jedes Mal, wenn Sie die Anzahl der Kanäle angeben möchten, CV_32FCx verwenden. Wenn Sie nur die Tiefe benötigen, verwenden Sie CV_32F

CV_32F ist definiert als:

%Vor%

während CV_32FC1 wie folgt definiert ist:

%Vor%

was zu 5 auswertet.

Sie können dies überprüfen mit:

%Vor%
Miki 30.05.2016 17:02
quelle

Tags und Links