OpenCV:从std :: in读取图像?

时间:2011-03-28 10:44:45

标签: c++ opencv stdin

有没有办法使用OpenCV的imread函数来读取std::in

Mat imread( const string& filename, int flags=1 );

函数只接受文件名,但stdin有一些“魔法”值吗?

3 个答案:

答案 0 :(得分:2)

OpenCV提供的imdecode函数可以在缓冲区而不是文件名上运行。您需要先将stdin读入缓冲区。

http://opencv.willowgarage.com/documentation/cpp/reading_and_writing_images_and_video.html

答案 1 :(得分:1)

如果你想要一个非常快速的黑客攻击,这里似乎可以在Linux上运行:

#include <unistd.h>

/* snip */ 

std::stringstream ss;
ss << "/proc/" << getpid() << "/fd/0";

cv::Mat m = cv::imread(ss.str());

答案 2 :(得分:0)

没有

但是,如果您真的想要,可以将stdin流式传输到命名管道(mkfifo)并从中读取。