Est-il possible d’utiliser la fonction imread
d’OpenCV pour lire std::in
?
Mat imread( const ssortingng& filename, int flags=1 );
La fonction accepte uniquement le nom de fichier, mais existe-t-il une valeur “magique” pour stdin?
OpenCV fournit des fonctions imdecode qui fonctionnent sur des tampons au lieu de nom de fichier. Vous devez d’abord lire stdin dans un tampon.
http://opencv.willowgargarage.com/documentation/cpp/reading_and_writing_images_and_video.html
Si vous voulez un piratage très rapide, voici quelque chose qui semble fonctionner sous Linux:
#include /* snip */ std::ssortingngstream ss; ss << "/proc/" << getpid() << "/fd/0"; cv::Mat m = cv::imread(ss.str());
Non,
Mais si vous le souhaitez vraiment, vous pouvez diffuser stdin dans un tube nommé (mkfifo) et le lire.