有沒有一些使用OpenCV的imread
函數從std::in
讀取的方法?OpenCV:從std :: in中讀取圖像
Mat imread(const string& filename, int flags=1);
功能只接受的文件名,但有stdin的一些「神奇」的價值?
有沒有一些使用OpenCV的imread
函數從std::in
讀取的方法?OpenCV:從std :: in中讀取圖像
Mat imread(const string& filename, int flags=1);
功能只接受的文件名,但有stdin的一些「神奇」的價值?
OpenCV提供了在緩衝區而不是文件名上工作的imdecode函數。您需要先將stdin讀入緩衝區。
http://opencv.willowgarage.com/documentation/cpp/reading_and_writing_images_and_video.html
沒有,
但是,如果你真的想,你可以流標準輸入到一個命名管道(mkfifo)並從中讀取。
如果你想有一個非常快速的黑客攻擊,這裏的東西,似乎在Linux上工作:
#include <unistd.h>
/* snip */
std::stringstream ss;
ss << "/proc/" << getpid() << "/fd/0";
cv::Mat m = cv::imread(ss.str());
嗯..這是非常的hackish。 BTW。使用/ dev/stdin不是更容易嗎? – vartec 2011-03-28 14:33:43
是的,它會更容易,我可恥沒有意識到那個特殊的文件:) – 2011-03-28 20:07:09