Comment lire UMat à partir d'un fichier dans opencv 3.0 Bêta?
Je veux utiliser UMat
donc mon code peut être exécuté sur les deux GPU et CPU en utilisant OpenCL (OpenCV 3.0.0 Beta).
mais je ne peux pas trouver un moyen de lire un fichier d'image dans un UMat
ou de convertir un Mat
à UMat
.
Comment puis-je lire une image dans une UMat
?
Vous devez vous connecter pour publier un commentaire.
Échantillon pour
Mat
àUMat
de conversion est ci-dessous. Coudlnt " trouver de la documentation pour ce. Donc, la seule option était de lire les source.D'accès différents drapeaux comme dans source sont
Pour undestanding
UMat
d'utilisation, un exemple complet pour la détection de visage est disponible ici. Notez également que la documentation fait toujours référence à de vieux drapeaux,imread
deuxième paramètre. Vous pourriez avoir besoin d'utiliser les nouvelles drapeaux, dans votre OpenCV fichier d'en-tête.Ce qui fonctionne pour moi est...
C'est en utilisant les dernières opencv 3.2
Pour covert-je utiliser
Uimage.copyTo(image)
ouimage=Uimage.getMat(cv::ACCESS_READ)
mais enfin, dans certains cas, de générer des problème avec réaffecter des données.Si vous voulez ti utilisation
UMat
globalement pour tous, peut assister à la présente certaines limitations à l'utilisationUMat
. Et peut-être mieux d'avoir la méthode de réserve avecMat
si l'opération avecUMat
ont erreur de violation d'accès.Remarque que ce que je décris ici n'est PAS une bonne réponse!
Selon cette présentation (apparemment un officiel de itseez) la bonne façon de charger une image à partir d'un fichier directement dans un
cv::UMat
doit être la suivante:Cependant, ce n'est pas une partie de OpenCV 3 interface, de sorte que vous devriez vraiment utiliser Kiran mise en œuvre du.
Vous pouvez convertir (copier les données sous-jacentes) cv::Mat pour cv::UMat et vice versa en utilisant
copyTo
méthode.Voici un exemple de code qui utilise
cv::UMat
: