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?
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éfixe64
- 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 estF
pour flotter, mais peut également êtreS
(signé) ouU
(non signé)Cx
- nombre de canaux dans une image comme je l'ai souligné plus tôt