Dvoetut 2 Жалоба Опубликовано April 3, 2013 скачал программу, вернее прект (пост №159 на 8 стр.) и при компиляции выдает ошибку error C3861: 'floor': identifier not found. покопался в коде так и несмог понять где эта штука потерялась. упоминание в коде нашел, а что это и откуда берется неясно. использую MSVisual Studio 2008. подскажите пожалуйста!! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано April 4, 2013 наверно надо заинклюдить #include <stdio.h> #include <math.h> http://www.cplusplus.com/reference/cmath/floor/ Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Loko 0 Жалоба Опубликовано April 8, 2013 Добрый день. Интересует следующий вопрос. Будут ли корректно работать две программы на основе opencv в режиме одновременного захвата видеопотока с одной web-камеры? Кто-нибудь так делал? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 8, 2013 У меня примеры не работают одновременно, если очень нужна такая схема, то можно попробовать так, как здесь: http://www.compvision.ru/forum/index.php?showtopic=1193 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Loko 0 Жалоба Опубликовано April 8, 2013 У меня примеры не работают одновременно, если очень нужна такая схема, то можно попробовать так, как здесь: http://www.compvision.ru/forum/index.php?showtopic=1193 Отлично, спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
igrek2012 0 Жалоба Опубликовано June 1, 2015 Доброго времени суток Можно ли настроить web камеру(немного изменяется изображение через программу) с помощью openCV для трансляции как Ip камера?. Visual Studio 2010,C++, OpenCV 2.3 Нашел такой пример:https://www.medialan.de/usecase0001.html#Running Как я понял в JPEGSamples.cpp лежат образцы, они не в виде изображений?реально ли переправить на работу с openCV? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано June 2, 2015 То что ты хочешь,сделать и можно и вполне реально. Захват с веб-камеры делать через OpenCV, а в программе реализовать rtsp-сервер. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
igrek2012 0 Жалоба Опубликовано June 7, 2015 В том примере не получается заставить работать даже если применить преобразование в .jpeg без сохранения, Сработает ли вариант ли вариант преобразование в jpeg и преобразования jpeg в массив? По идее образцы и есть массивы... Нашел такой пример.https://www.cs.utexas.edu/~teammco/misc/udp_video/ Код далеко не весь... Даже пример не работает после сборки. Взял за основуhttp://www.cyberforum.ru/cpp-networks/thread815103.html Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ProgRoman 9 Жалоба Опубликовано June 29, 2015 Здравствуйте! Есть IP камера видео передаётся через rtsp вставляю ссылку в vlc и всё работает... абсолютно такая же строка но при коннекте камеры через opencv ничго не происходит... вернее самого конекта не происходит... формат строки rtsp://x.x.x.x:PORT при связывании через vlc видео показывает... ..................... VideoCapture cap; cap.open(filename);//filename - строка конекта ............................ он даже его не открывает... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ProgRoman 9 Жалоба Опубликовано June 29, 2015 что-то непонятно... сейчас явно гружу opencv_ffmpeg2410_64.dll но видео не идёт.. есть метод open в файле cap_ffmpeg.cpp virtual bool open( const char* filename ) { icvInitFFMPEG::Init(); close(); if( !icvCreateFileCapture_FFMPEG_p ) return false; ffmpegCapture = icvCreateFileCapture_FFMPEG_p( filename ); return ffmpegCapture != 0; } ffmpegCapture = icvCreateFileCapture_FFMPEG_p( filename ); эта строка похоже как-то некорректно отрабатывает filename корректный, а связать она почему-то не может.. выводит следующее сообщение Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dvoetut 2 Жалоба Опубликовано September 30, 2016 Всем привет! Есть вопрос. OpenCV позволяет считать с web камеры заводской номер? Я понимаю, что у каждого производителя конструктив камер свой, но может кто-то делал такое? Пусть даже не с помощью OpenCV. Или может можно как-то еще идентифицировать кокретную камеру? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано September 30, 2016 Ну так PID/VID гуглите и libusb . Не заводской номер конечно, но большего я думаю можно добиться только через драйвер (если заводской номер там вообще вытаскивается). Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Anry Aurson 0 Жалоба Опубликовано October 30, 2016 Добрый вечер. Уважаемые Форумчане подскажите как устранить ошибку чтения с камеры. работаю с камерами Arecont Vision. Получаю видео через Visual Studio10 + OpenCv: #include "stdafx.h" #include <c:/opencv/build/include/opencv2/opencv.hpp> int main(int argc, char *argv[]) { int c; IplImage *img; CvCapture* capture = cvCaptureFromFile("http://192.168.104.13:8080/video1x.mjpeg"); cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); cvMoveWindow("mainWin", 5, 5); while(1) { img=cvQueryFrame(capture); cvShowImage("mainWin", img ); c=cvWaitKey(10); if(c == 27) break; } return 0; } пишет ошибку кодировки файла, пробовал получать через const std::string videoStreamAddress = "rtsp://192.168.104.13:8080"; то же самое. Я так полагаю во встроенyом в OpenCv ffmpeg - нет чтения mjpeg файлов, причем cvCaptureFromFile("C:/Film/video1.avi") - читает, а cvCaptureFromFile("C:/Film/video1.mjpeg") - нет. Может кто-нибудь знает как решить данную проблему? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Игорь_СПБ 0 Жалоба Опубликовано December 21, 2016 Здравствуйте. Столкнулся с такой проблемой, что не могу отключить автоматическое усиление и вручную устанавливать усиление и экспозицию в камере с помощью cvSetCaptureProperty, функция возвращает 0. Попробовал считать все возможные параметры камеры через cvGetCaptureProperty, в результате осмысленные значения только для размеров кадра и кадровой частоты, остальные возвращает 0. Камера USB, Win7. Фирменная программа позволяет менять настройки, а из opencv никак. Может кто сталкивался с таким ? Спасибо Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 21, 2016 Посмотрите здесь: Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dvoetut 2 Жалоба Опубликовано April 11, 2017 Всем привет! Возникла такая странная ситуация: -есть ноутбук, на нем стоит две ОС Win7 x64 -на ноутбуке под обоими ОС успешно работала моя программа по обработке изображения с камеры. Работаю с камерой logitech, а штатную камеру ноутбука не использую. -возникла необходимость на одной из систем установить ms visual studio 2012 и opencv 2.4.9. Все успешно установилось, попробовал скомпилировать и запустить тестовый пример: компиляция прошла успешно, но при запуске программы должно появляться окно с изображением с камеры и в списке окон оно есть, но ни окна ни изображения на экране не появляется. Эта ситуация возникает и для штатной камеры ноутбука. Однако, через драйвер Logitech к камере удается подключиться и через него работать - под другой ОС (где ничего нового не устанавливал), все работает нормально У кого-то были подобные проблемы? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
sav59 0 Жалоба Опубликовано January 10, 2018 Здравствуйте Реализую задачу захвата статического изображения с камеры для последующей обработки Камера PNM-IP4-V12 от Поливижион. MJPEG поток в ней не смог найти. Только H264 Захват делаю cvCaptureFromFile("rtsp://адрес:554/user=имя&password=пароль&channel=1&stream=0?.sdp") При этом через раз теряется половина кадра картинки. Может быть есть другие более правильные способы работы с потоком H264? Или покопать в другую сторону? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано January 10, 2018 Возможно, не хватает процессора на декодирование. Я бы проверил обычным ffplay с такими же параметрами: проигрывается нормально? И убедился бы при этом, что OpenCV также использует ffmpeg. Если на оба вопроса ответ "да", то надо делать видеозахват самому на том же ffmpeg или другой библиотеке. Дело в том, что ffplay использует многопоточность с тремя потоками: поток для сети и очередь пакетов из сети, поток на декодирование и очередь сырых кадров, поток на отображение. OpenCV всё делает в одном потоке и тормоза в одном месте могут привести к потере пакетов. И ещё ffplay отображает через SDL напрямую исходные YUV кадры, а OpenCV вызывает внутри себя sw_scale с конвертацией в RGB. Что по понятным причинам дополнительно загружает процесс. Это раз. И два: а пропускной способности сети точно хватает? Если есть возможность снизить битрейт и поставить реже частоту ключевых кадров (I frame), то стоит проверить и это. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
iskees 32 Жалоба Опубликовано January 13, 2018 Была такая же проблема, помогла установка частоты опорных кадров на 1. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано January 13, 2018 Это так себе способ, убивает все достоинства h.264. Лучше научиться нормально с ним работать. А то вдруг может оказаться, что сеть не пропускает видео. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
timurhamitov 1 Жалоба Опубликовано June 6, 2018 Здравствуйте! Проблема с фпс, кто сталкивался? Я новичок пока что в деле компьютерного видения. Есть камеры usb 2.0, которые дают 330 фпс, virtualdub подтверждает, но в opencv выжать больше 192 не получилось на 2ой версии, а на 3 даже 90 еле еле, нагрузка на процессор 50%, что может быть? Гуглил, французы пришли к выводу, что на 3 версии не mjpeg захватывается, поэтому. Но на 2ой пишут, что должны 330. Если выводить на экран, то 60 фпс, система Windows 10, ide visual studio 15 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано June 6, 2018 Я так понимаю, что тут 2 вопроса: почему не 330 захватывается и почему только 60 выводится. Захват осуществляется не самой OpenCV, который выступает исключительно в виде фронтэнда в этом случае, а с помощью одного из используемых бэкэндов. Надо узнать, что это за бэкэнд! Думаю, что для web-камер под Windows используется DirectShow или vfw. Классический VirtualDub использует vfw, скорее всего OpenCV 2 также. Отсюда и высокий fps. Предположу, что OpenCV 3 использует уже DirectShow, поэтому получается медленнее. Можно взять VirtualDub DirectShow mod, лучше просто GraphEdit и проверить что да как. В GraphEdit можно и подобрать правильные фильтры/муксеры/декодеры для получения максимального fps. Посмотреть в стороны DXVA2. Ну и узнать в конце-концов, чем декодирует OpenCV и где тормоза с помощью профайлера. Всё таки библиотека опенсорсная, надо пользоваться этим. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
timurhamitov 1 Жалоба Опубликовано June 6, 2018 5 минут назад, Nuzhny сказал: Я так понимаю, что тут 2 вопроса: почему не 330 захватывается и почему только 60 выводится. Захват осуществляется не самой OpenCV, который выступает исключительно в виде фронтэнда в этом случае, а с помощью одного из используемых бэкэндов. Надо узнать, что это за бэкэнд! Думаю, что для web-камер под Windows используется DirectShow или vfw. Классический VirtualDub использует vfw, скорее всего OpenCV 2 также. Отсюда и высокий fps. Предположу, что OpenCV 3 использует уже DirectShow, поэтому получается медленнее. Можно взять VirtualDub DirectShow mod, лучше просто GraphEdit и проверить что да как. В GraphEdit можно и подобрать правильные фильтры/муксеры/декодеры для получения максимального fps. Посмотреть в стороны DXVA2. Ну и узнать в конце-концов, чем декодирует OpenCV и где тормоза с помощью профайлера. Всё таки библиотека опенсорсная, надо пользоваться этим. Спасибо большое за ответ, в боевой версии нужна только логика, вывод не важен, потому что нужен, если только для себя визуализировать. Как думаете, на более мощном компьютере или линукс может вырасти фпс? Или для этого все равно придется Цитата подобрать правильные фильтры/муксеры/декодеры Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано June 6, 2018 Думаю, что для получения такого высокого fps всё равно прийдётся разбираться с захватом видео на низком уровне. Почему DirectShow может тормозить? Потому что там может стоять не только Frame grabber, но и несколько других фильтров, которые в обычных условиях практически не дают дополнительной нагрузки, немного улучшая качество видео. А это дополнительные копирования памяти. Какое разрешение видео? Если FullHD, то при 330 fps и кадре RGB мы получим поток: 3 байт/пиксель * 1920 * 1080 * 330 = 2 Гбайта/сек. Многовато? Да. С такими объёмами надо минимизировать количество копирований и выделения памяти любыми способами. Чем декодируется видео? Аппаратным декодером или программным? Надо убедиться, что аппаратным. Почему древний vfw может быть быстрее DirectShow? Потому что он ничего не умеет, кроме самых базовых вещей, вот и работает быстрее. Копирует ли OpenCV внутри себя память, когда он выдаёт наружу cv::Mat? Да, копирует, а это лишнее. Поможет ли Линукс и/или более мощный комп? Может помочь, а может и нет, зависит от причины тормозов. Я бы всё таки начал с GraphEdit и посмотрел на результат. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
timurhamitov 1 Жалоба Опубликовано June 7, 2018 По поводу объемов данных. Объем не более 480 мбит/c, потому что подключение Usb 2.0, я запускал вашу программу cameracontrol, она дает такие данные: Размер: x=640 y=360 FPS: 330 битрейт: 1 824 768 000 бит/пиксель:24 И еще пока только одна камера подключена, а использовать две буду, а в боевой версии возможно переход будет на usb 3.0 и большее разрешение, fps, тоесть до 5 ГБ/сек. GraphEdit идет с sdk, а sdk с visalstudio? пока не понял как установить, по идее он уже должен быть, он есть в бесплатной версии visualstudio? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах