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

3

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

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

这个函数只接受文件名作为参数,但是有没有一些“神奇”的值可以代表标准输入?

3个回答

3

1
如果你想要一个非常快速的解决方案,这里有一个在Linux上似乎有效的方法:
#include <unistd.h>

/* snip */ 

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

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

4
嗯... 这很像是黑客的做法。顺便问一下,使用 /dev/stdin 不是更容易吗? - vartec
是的,这样会更容易,我很惭愧地不知道那个特殊文件 :) - t.dubrownik

0

不可以,

但是如果你真的想要的话,你可以将stdin流到一个命名管道(mkfifo)中并从中读取。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接