Comment convertir le C++ tableau de opencv Mat
Quel est le moyen le plus rapide pour convertir une C++ tableau en 2D opencv Mat objet?
La force Brute de la méthode pour passer en boucle sur toutes les entrées de la 2D tapis et de les remplir avec les valeurs de la matrice.
Est-il mieux /plus rapide façon de le faire?
Pourrais-je, en quelque sorte, donner pointeur de la matrice de la matrice 2D?
(Je suis en utilisant opencv 2.4.8)
- lire la documentation de OpenCV! c'est clairement expliqué
- Voir aussi: stackoverflow.com/questions/12139402/...
Vous devez vous connecter pour publier un commentaire.
Oui, il y a, dans le la documentation de
cv::Mat
vous pouvez voir comment elle peut être réalisée.Spécifiquement dans cette ligne
Cela signifie que vous pouvez faire quelque chose comme
Ce ne sera pas copier les données. Vous devez aussi vous rappeler que OpenCV données est la ligne principale, ce qui signifie qu'il dispose de toutes les colonnes d'une des lignes et ensuite la ligne suivante et ainsi de suite. Si votre tableau est à la hauteur de ce style pour que cela fonctionne.
Sur la façon dont il est rapide, la documentation en parle:
Il fonctionne très rapide, mais c'est le même tableau, si vous l'avez modifié à l'extérieur de la
cv::Mat
, il sera modifié dans lecv::Mat
, et si elle est détruite à tout moment, ledata
membre decv::Mat
sera point à un non-lieu existant.Mise à JOUR:
J'ai oublié de dire aussi, que vous pouvez créer le
cv::Mat
et ne std::memcpy. De cette manière, il va copier les données, qui peut être plus lent, mais les données seront détenus par lacv::Mat
objet et le détruit avec lecv::Mat
destroyer.