gpt4 book ai didi

c++ - OpenCV:无法从管道读取图像

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:52:14 25 4
gpt4 key购买 nike

我正在尝试从标准输入、命名管道等管道加载图像。

这是我的示例代码:

#include "opencv2/opencv.hpp"

using namespace cv;

int main(int argc, char **argv) {

   Mat img;
if(argc > 1) img = imread(argv[1]);
else img = imread("/dev/stdin");
printf("rows = %d, cols = %d\n", img.rows, img.cols);
imshow("original", img);
while (waitKey(1) != 'q');
return 0;

}

./a.out image.jpg

会起作用,但是

./a.out < image.jpg

mkfifo img.pipe
./a.out img.pipe
cat image.jpg > img.pipe

将不起作用,Mat img 的行和列为 0。

真实文件和管道有什么区别?

最佳答案

函数imread 是从 block 设备而不是流设备读取图像。本地文件是block,pipe是stream,所以函数imread不能从管道,套接字等读取图像。

关于c++ - OpenCV:无法从管道读取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26435543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com