Khludenkov
-
Количество публикаций
79 -
Зарегистрирован
-
Посещение
-
Days Won
1
Сообщения, опубликованные пользователем Khludenkov
-
-
Здравствуйте.
Скажите, есть ли в opencv стандартная последовательность (pipeline) определения расстояния до объекта?
Объект присутствует на двух фотографиях, снятых на расстоянии (база) 1м друг от друга.
Смотрел в гугле, попадались проекты. Но они больше какие-то "самодельные".
- 1
-
Спасибо. Буду изучать.
-
-
И желательно, конечно, чтобы градиентный блендинг был.
Теорию понимаю. Прошу помочь с названием opencv функций, которые при этом надо использовать.
Наверное это
Читал замечательный pdf про blending, там хорошая теория, про градиентный блендинг, но не указано, как это реализовать на opencv.
Прошу подсказать.
-
Здравствуйте.
Продолжаю делать сшивку изображений (OpenCV).
Допустим есть два снимка в формате cv::Mat. Я их совмещаю, к примеру, с 20-ти процентным перекрытием. И применяю в полученном изображении в области совмещения блендинг.
Есть ли какие специальные функции для этого? Или придётся строить ROI для областей совмещения, копировать эти части в отдельные массивы, смешивать, а затем вставлять обратно?
-
Спасибо. Да, то что нужно.
-
Вроде понимать начал.
K - коэф увеличения
R - вращение
-
Продолжаю разбирать код ститчера (файл stitcher.cpp).
Там по всему файлу проходят параметры cameras, например:
cameras[i].K().convertTo(K, CV_32F);
или вот:
for (int i = 0; i < num_images; ++i) { // Update intrinsics cameras[i].focal *= compose_work_aspect; cameras[i].ppx *= compose_work_aspect; cameras[i].ppy *= compose_work_aspect; // Update corner and size Size sz = full_img_sizes[i]; if (std::abs(compose_scale - 1) > 1e-1) { sz.width = cvRound(full_img_sizes[i].width * compose_scale); sz.height = cvRound(full_img_sizes[i].height * compose_scale); } Mat K; cameras[i].K().convertTo(K, CV_32F); Rect roi = warper->warpRoi(sz, K, cameras[i].R); corners[i] = roi.tl(); sizes[i] = roi.size(); }
Скажите, что это за камеры такие? Где можно подробнее посмотреть?
-
Прочёл про Pyramid Blending.
Такие сложности для соединения...
-
В частности, вот эта часть кода (файл stitcher.cpp)
// Blend the current image blender_->feed(img_warped_s, mask_warped, corners[img_idx]); } Mat result, result_mask; blender_->blend(result, result_mask);
Получается, у него где-то внутри есть объект в котором набираются изображения, а result, result_mask формируются именно в этих строках?
-
Здравствуйте. Продолжаю изучать панорамирование изображений средствами openCV.
Дошёл до блендера. Как я понял, в него последовательно добавляются снимки для создания общего.
Не понял для чего нужна маска и можно ли её выкинуть.
Скажите, где про его использование почитать можно.
Имено про блендинг изображений, а не пикселей
-
Спасибо.
leave значит оставить, а не выкинуть...
-
Здравствуйте. Изучаю код для ститчера. Там есть такая строка:
vector<int> indices = leaveBiggestComponent(features, pairwise_matches, conf_thresh);
Скажите, что она означает. Доку по opencv читал. Не очень понял.
-
Но как я понимаю, даже в классе stitcher есть его конструктор:
Stitcher::createDefault(try_use_gpu);
То есть как-то он его использует.
-
Спасибо.
Если можно, ещё вопросы. Тут мне предложили в моём девайсе использовать чип nVidia Tegra K1. Посмотрел описание, достаточно мощный и не очень дорогой (около 100 долларов). Как я понимаю, nVidia специализируется на графике. Какие у них есть ещё преимущества для панорамирования помимо использования CUDA?
-
А что за процессор?
Если надо для встроенной системы сделать, то на FPGA? ARM наверное не потянет?
Признаю - понятия матчинг и варпинг относительно сшивки изображений услышал совсем недавно. Скажите, как всё это делается? Если можно, статью или мануал.
Книгу Шилезского (или как правильно по транскрипции) посмотрел, там не очень про это написано.
Читаю про варпинг. Если это аффинные преобразования, то почему прямые линии переходят в изогнутые?
-
А может быть подскажите, что занимает большее время: поиск особых точек, собственно соединение изображений или выравнивание получившейся панорамы?
Кстати, где вам репутацию плюсануть?
-
Спасибо, mrgloom.
Ищу способы ускорения. Допустим я знаю как расположены снимки друг относительно друга. Я думаю, это должно помочь. Пробую переписать Stitcer::stitch()
-
Нет, дольше всех работает всё-таки stitching...
-
Сейчас продебажил демо код. Нашёл что дольше всех работает фукнция setSeamFinder. Сейчас смотрю исходники, буду думать как ускорить процесс.
-
Здравствуйте. Возникла необходимость сделать сшивку изображений. Прочёл про стандартный pipeline на сайте opencv. Смотрю исходники в примерах.
Как-то туго. Есть ли где статья, где описан сам процесс.
Если можно, киньте ссылку. Можно на английском, можно на русском.
-
Спасибо. Поставлю тоже 2.4.13.
Они ещё версии 3.хх продвигают. Там сильное отличие?
-
8 минут назад, Фруктовый сказал:Ставте последний релиз 2.4.13
Спасибо. Все примеры по установке для 2.2 и 2.4.3
Делаю простейший пример. В ответ: "не найден класс Мат".
Фруктовый, может подскажите, что прописать надо, чтобы работало.
Где что плюсовать и сказать "спасибо"?
-
Здравствуйте. Скажите, а версия 2.4.3 в природе встречается?
Поставил вепсию 2.4.9. Что-то с ней не так.
Делаю простейший пример. В ответ: "не найден класс Мат".
"Версия", да, а не "вепсия", конечно.
Определение расстояния до объекта по двум фотографиям
в Обсуждение общих вопросов
Опубликовано · Report reply
Точность также примерно 1 метр.
Вдалеке - до километра.
То есть снимки полностью параллельны? Или что это означает?
Можно ли как-то учесть непараллельность снимков?