1) Вы можете использовать VideoCapture
с именем filename :
имя_файла - имя открытого видеофайла (например, video.avi) или последовательность изображений (например, img_% 02d.jpg, который будет читать образцы, такие как img_00.jpg, img_01.jpg, img_02.jpg, ...)
blockquote>2) Или просто измените имя изображение для загрузки по счетчику.
#include
#include #include #include int main() { std::string folder = "your_folder_with_images"; std::string suffix = ".jpg"; int counter = 0; cv::Mat myImage; while (1) { std::stringstream ss; ss << std::setw(4) << std::setfill('0') << counter; // 0000, 0001, 0002, etc... std::string number = ss.str(); std::string name = folder + number + suffix; myImage = cv::imread(name); cv::imshow("HEYO", myImage); int c = cv::waitKey(1); counter++; } return 0; } 3) Или вы можете использовать функцию glob , чтобы сохранить все имена файлов, соответствующие заданному шаблону в векторе, а затем сканировать вектор. Это будет работать и для несколких чисел.
#include
using namespace cv; int main() { String folder = "your_folder_with_images/*.jpg"; vector filenames; glob(folder, filenames); Mat myImage; for (size_t i = 0; i < filenames.size(); ++i) { myImage = imread(filenames[i]); imshow("HEYO", myImage); int c = cv::waitKey(1); } return 0; }
Спасибо за ответы! Оказывается, я был совершенно неправ, считая, что это проблема браузера - проблема была на сервере. ASP.NET сериализует запросы одного и того же сеанса, для которых требуется состояние сеанса, поэтому в этом случае следующая страница не начала обрабатывать на сервере, пока эти запросы, инициированные ajax, не были завершены.
К сожалению, в этом случае состояние сеанса требуется в обработчике http, который отвечал на вызовы ajax. Но доступ только для чтения достаточно хорош, поэтому, помечая обработчик с помощью IReadOnlySessionState вместо IRequiresSessionState, блокировки сеанса не удерживаются, и проблема решена.
Надеюсь, эта информация окажется полезной для других.
Относительно собственного ответа Тодда на этот вопрос ...
У меня только что была эта проблема с PHP, и то же самое решение сработало бы. Однако мне нужна была информация на сессии. Для разработчиков PHP вы можете позвонить session_write_close()
, чтобы закрыть и записать ваш сеанс в середине запроса. Это освободит сеанс для других запросов.
Вы уверены, что используете асинхронный запрос? Если браузер блокирует весь запрос, вы используете синхронный запрос (параметр async имеет значение false)
Для ASP.NET MVC можно украсить контроллер следующим [SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)]
.
Возможно, вы захотите проверить странный побочный эффект abort ()
Когда используется метод abort (), в проводнике и Mozilla срабатывает событие readystatechange. Хуже того, readyState = 4, что означает, что средний скрипт xmlhttp предполагает, что данные были загружены правильно. Это может дать очень странные эффекты.
описано здесь:
http://www.quirksmode.org/blog/archives/2005/09/xmlhttp_notes_a_1.html
Проблема с сервером также относится к серверу Apache / Php, с которым я работаю. Удален session_start для скрипта, который не нуждался в нем (AJAX), и все работает, как ожидалось. Спасибо Тодду, который указал на подобную проблему!