2012-03-23 3 views
1

Existe-t-il un moyen de charger une image dans un tapis existant? Sinon, existe-t-il un moyen de contrôler où OpenCV alloue de la mémoire lors de la chute de cv :: imread?Charger l'image dans Mat existant

+0

Pourquoi avez-vous besoin de faire exactement? Si vous avez une série d'images que vous souhaitez traiter comme s'il s'agissait d'un fichier vidéo, FFmpeg peut le faire ... Si non, alors quel est le cas d'utilisation ici? –

+0

J'utilise OpenCV pour charger des images dans mon application. Cependant, j'utilise ma propre classe d'image, donc je convertis le OpenCV Mat en ma propre classe d'image. Je ne veux pas copier l'image, donc je veux un moyen de dire à OpenCV où charger l'image. – Pibben

+0

Je vois ... OpenCV définit une fonction 'cv :: imread _()' qui accepte un paramètre 'cv :: Mat' dans' loadsave.cpp', mais il est déclaré 'static', donc vous devrez modifier le code source et recompiler pour y accéder .. Je ne pense pas qu'il y ait une réponse à cette question autrement :( –

Répondre

0

Je créerais simplement un constructeur pour votre classe qui prend les arguments d'entrée d'imread et charge (et alloue) l'image directement dans votre classe.

donc quelque chose comme ceci:

class myClass { 
private: 
    Mat img; 
public: 
    myClass(const string fileName) { 
     this->img = imread(fileName); 
    } 
} 
Questions connexes