Writing opencv mat to stdout
Writing opencv mat to stdout
我正试图将一个处理过的mat写入STDOUT,以便将其管道传输到ffmpeg中,但我不明白之间到底有什么区别
imencode和imread。
根据opencv文件
imencode : Encodes an image into a memory buffer.
imread : Loads an image from a file.
imread不是也在将图像数据加载到内存缓冲区中吗?opencv窗口是否可以通过管道连接到另一个应用程序?
我不想使用raspvid,而是用管道传输我的程序输出的ffmpeg,这将是显示处理过的窗口的窗口。
http://www.valmueller.net/stream-video-with-raspberry-pi-to-youtube/
imread
与imdecode
相关,而imwrite
与imencode
相关。
你可以把imread
想象成:
- 按原样读取图像文件(jpg、png等)中的原始数据缓冲区
- 使用
imdecode
将原始数据缓冲区解码为(通常,但取决于标志)BGR图像
CCD_ 7为
- 使用
imencode
将(通常)BGR图像解码为jpg、png等原始数据缓冲区 - 按原样将原始数据缓冲区写入磁盘
原始数据缓冲区是一个CCD_ 9。
根据您的需要,您可以安装stdout
:
- (通常)BGR缓冲区,它包含一系列字节BGRBGR。。。BGR。字节数组从
mat.data
开始,长度等于:mat.rows * mat.cols * mat.channels()
。这对于连续矩阵是有效的,但让我们假设现在是这样 - 或解码的jpg、png等…原始数据缓冲区
关于图像操作的OpenCV教程提到,虽然imread
/imwrite
可以用于读取和写入文件,但可以用于…
使用
cv::imdecode
和cv::imencode
从内存而不是文件中读写图像。
因此,由于我们想将结果推向标准,我们需要使用imencode
将矩阵数据保存在缓冲区中(此处假设为JPEG文件格式):
cv::Mat fileToSend = # initialised somehow
std::vector<uchar> buffer;
cv::imencode(".jpg", fileToSend, buffer);
然后将缓冲区数据写入标准输出:
std::fwrite(buffer.data(), 1, buffer.size(), stdout);
std::fflush(stdout);
return 0;
相关文章:
- 如何将stdout重定向到stderr
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- C++ Singleton - Prevent ::instance() to variable
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 如何解决"invalid conversion from 'char' to 'const char*'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- Python str to C++ to Python str
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- "no matching function for call to 'Vector::Vector'"错误
- vector<vector<double>> to mxArray using memcpy
- visual Redirect stdout/stderr to null vs2017 c++
- 如何阻止Lex为每个规则输出到thevest to stdout
- stdout to a variable c/c++
- Writing opencv mat to stdout