有没有办法使用OpenCV的imread
函数来读取std::in
?
Mat imread( const string& filename, int flags=1 );
函数只接受文件名,但stdin有一些“魔法”值吗?
答案 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)并从中读取。