Différence entre les types de tapis OpenCV

quelles sont les différences entre OpenCV cv::Mat types?

Pour être plus précis, quelle est la différence entre CV_64F et CV_64FC1 ou CV_64FC2? Lequel devrais-je utiliser quand je crée un cv::Mat objet double valeurs?

16
demandé sur guneykayim 2013-10-08 17:24:35

1 réponses

Cx partie nombre de canaux dans une image. C'est, à l'image de type CV_64FC1 est une simple image en échelle de gris et n'a qu'un canal:

image[i, j] = 0.5

alors que l'image de type CV_64F3 est l'image couleur avec 3 canaux:

image[i, j] = (0.5, 0.3, 0.7)

(dans C++ vous pouvez vérifier les pixels individuels comme image.at<double>(i, j))

CV_64F est le même que CV_64FC1. Donc, si vous avez besoin juste de la matrice 2D (c.-à-d. canalisé simple), vous pouvez juste utiliser CV_64F


EDIT

plus généralement, tapez le nom d'un Mat objet se compose de plusieurs parties. Voici l'exemple pour CV_64FC1:

  • CV_ - ce n'est qu'un préfixe
  • 64 - nombre de bits par élément de matrice de base (par exemple, valeur du pixel dans l'image en échelle de gris ou élément de couleur unique dans l'image BGR)
  • F - type de l'élément de base. Dans ce cas, il est F pour flotter, mais peut également être S (signé) ou U (non signé)
  • Cx - nombre de canaux dans une image comme je l'ai souligné plus tôt
22
répondu ffriend 2013-10-08 18:34:55