2011-03-28 68 views
2

有沒有一些使用OpenCV的imread函數從std::in讀取的方法?OpenCV:從std :: in中讀取圖像

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

功能只接受的文件名,但有stdin的一些「神奇」的價值?

回答

0

沒有,

但是,如果你真的想,你可以流標準輸入到一個命名管道(mkfifo)並從中讀取。

1

如果你想有一個非常快速的黑客攻擊,這裏的東西,似乎在Linux上工作:

#include <unistd.h> 

/* snip */ 

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

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

嗯..這是非常的hackish。 BTW。使用/ dev/stdin不是更容易嗎? – vartec 2011-03-28 14:33:43

+0

是的,它會更容易,我可恥沒有意識到那個特殊的文件:) – 2011-03-28 20:07:09