【发布时间】:2011-03-28 10:44:44
【问题描述】:
有没有办法使用 OpenCV 的 imread 函数从 std::in 读取数据?
Mat imread( const string& filename, int flags=1 );
函数只接受文件名,但标准输入是否有一些“神奇”值?
【问题讨论】:
有没有办法使用 OpenCV 的 imread 函数从 std::in 读取数据?
Mat imread( const string& filename, int flags=1 );
函数只接受文件名,但标准输入是否有一些“神奇”值?
【问题讨论】:
OpenCV 提供了处理缓冲区而不是文件名的 imdecode 函数。您需要先将标准输入读入缓冲区。
http://opencv.willowgarage.com/documentation/cpp/reading_and_writing_images_and_video.html
【讨论】:
如果你想快速破解,这里有一些似乎可以在 Linux 上运行的东西:
#include <unistd.h>
/* snip */
std::stringstream ss;
ss << "/proc/" << getpid() << "/fd/0";
cv::Mat m = cv::imread(ss.str());
【讨论】:
不,
但如果你真的想要,你可以将标准输入流式传输到命名管道 (mkfifo) 并从中读取。
【讨论】: