Я пытаюсь загрузить изображение из трубы, такие как, стандартного ввода имени трубы и т.д.OpenCV: Не удалось прочитать файл из трубы
Это мой пример кода:
#include «opencv2 /opencv.hpp "
использование пространства имен cv;
INT основной (интермедиат ARGC, символ ** 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.
В чем разница между реальным файлом и трубой?
Спасибо, raison! Таким образом, это означает, что 'imread' использует некоторые функции, такие как файл с произвольным доступом, который поддерживается блочными устройствами, но не потоковыми устройствами? – wing
@wing, вот и все. –