Opencv multiplier scalaire et de la matrice
J'ai essayé d'obtenir quelque chose qui devrait assez trivial et est trivial dans Matlab.
Je veux simplement obtenir quelque chose comme:
cv::Mat sample = [4 5 6; 4 2 5; 1 4 2];
sample = 5*sample;
Après prélèvement de l'échantillon doit être juste:
[20 24 30; 20 10 25; 5 20 10]
J'ai essayé scaleAdd
, Mul
, Multiply
et ni permettre à un scalaire multiplicateur et nécessitent une matrice de même taille et de type". Dans ce scénario, j'ai pu créer une Matrice de Celles et ensuite utiliser le paramètre d'échelle, mais qui semble très étrangères
Directe d'une méthode simple serait génial!
Ne devrait pas
24
être 25
à la place??? 😛
OriginalL'auteur Arpan Shah | 2013-07-27
Vous devez vous connecter pour publier un commentaire.
OpenCV, dans les faits, le soutien de multiplication par un scalaire avec surchargé
operator*
. Vous pourriez avoir besoin pour initialiser la matrice correctement.Si vous êtes intéressés dans des opérations mathématiques,
cv::Matx
est un peu plus facile de travailler avec:OriginalL'auteur Aurelius
quelque chose comme ça.
OriginalL'auteur SPV
Pour les gros Tapis vous devez utiliser forEach.
Si C++11 est disponible:
OriginalL'auteur Black Arrow
OriginalL'auteur Syed Safdar Ali
Pour java il n'y a pas de surcharge d'opérateur, mais le Tapis objet fournit la fonctionnalité avec une méthode convertTo.
Doc sur cette méthode est ici
OriginalL'auteur J.E.Tkaczyk