-
Количество публикаций
3 873 -
Зарегистрирован
-
Посещение
-
Days Won
346
Сообщения, опубликованные пользователем Smorodov
-
-
Можно, для начала, попробовать что то подобрать здесь: https://github.com/topics/license-plate-recognition
-
Так это, однослойное требует
Проверьте shape загруженного изображения, если слоев 3, просто отцепите один, в сером они все одинаковые.- 1
-
Да, disparity как то не сошлось. Видимо картинка не подходящая, квадратики гладкие и регулярные текстуры. Не то что любят алгоритмы стерео матчинга.
Посмотрите примеры здесь: https://answers.opencv.org/question/117141/triangulate-3d-points-from-a-stereo-camera-and-chessboard/ может наведет на мысли.
А почему калибруете через матлаб ? OpenCv - шная тулза не подходит ? Можно попробовать откалибровать opencv-шным и сравнить коэффициенты.
- 1
-
А можете привести схему эксперимента? Как установлены камеры, расположение и размеры объекта. А то вы привели результат работы алгоритма, а что должно быть мы не знаем. Может быть еще минимальный запускаемый кусок кода с тестовым изображением для пощупать проблему.
- 1
-
-
У меня под виндой обычно установлен k lite codec pack и его, как правило, хватает на все случаи жизни.
-
Думается H.264 или H.265 должны жать по максимуму, но вряд ли сильно плотнее чем mpeg4 или divX..
-
-
Наткнулся на проект по теме, детектор Vanishing Point (python ): https://github.com/rayryeng/XiaohuLuVPDetection
-
это можно, но тогда на изображениях должна быть одна и та же картинка, отличающаяся только поворотом, ну может немного смещенная.
Короче, если взяв эти деве картинки вы на глаз можете определить поворот, то и комп сможет, если нет, то нет.
- 1
-
У вас он даст угол между двумя изображениями. Они должны перекрываться. Если работать по последовательности кадров, то углы нужно суммировать.
А тот ли это угол ? Хм... ну это вам лучше знать Задача то вами ставится.
- 1
-
Если что то вроде оптической мышки получается, то есть изображения с приличным перекрытием, то попробуйте https://github.com/Smorodov/LogPolarFFTTemplateMatcher
или посмотрите cv::estimateRigidTransform + какие-нибудь фичи (sift, surf, orb, ...).
- 1
-
Там в ответе про угол обзора камеры, а не про поворот вообще.
Можете схему эксперимента обрисовать, чтобы понятно было относительно чего меряется угол ? Одинаковые ли изображения ?
Просто по одному произвольному изображению ничего о камере сказать нельзя. Есть специально созданные картинки, типа шахматки или маркеров для дополненной реальности, но о них мы все знаем.
-
Есть способы найти преобразование для плоскости, чтобы перевести изображение из одного в другое.
По нему и определяют углы поворота и смещения.
-
Как минимум нужно опорное изображение, где камера имеет нулевые углы. Если эти изображения плоские.
Посмотрите еще здесь: https://docs.opencv.org/master/dc/d2c/tutorial_real_time_pose.html
-
Погуглите slam, ptam, dtam, multiple view geometry, Это не маленький объем математики, и привести его здесь проблематично. Посмотрите библиотечку OpenMVG .
- 1
-
Не очень понял проблему габаритных точек там всего 8. Можно, в принципе брать любые оси вдоль кузова.
Сдвинем VP
Еще пара ссылок: http://stratum.ac.ru/education/textbooks/kgrafic/lection04.html
https://docs.opencv.org/2.4/modules/imgproc/doc/geometric_transformations.html#warpperspective
-
Ну если исключить поиск угловых точек кузова, путем кликания мышкой при установке камеры. То VP ищется на раз.
Что нам это дает?
Нам это дает изменение масштаба вдоль кузова.
Это нам дает линейку с переменным шагом вдоль кузова.
И две линейки с постоянным для данной глубины шагом.
Мы знаем что ящики стоят на полу, значит нижняя грань находится в плоскости пола.
Можно найти расстояние в относительных единицах (один из габаритов кузова)
Можно найти ширину и высоту ящиков (по передним граням).
Можно найти и глубину, если видна одна из боковых граней.
Но это только геометрия.
Извлечь ребра из прлузеркальных конструкций более интересная задача.
-
Изображение не помешало бы, чтобы разговор был предметный. А так, одна камера, только для частных случаев будет работать.
-
А попробуйте сделать минимальную программку из 3 строчек и посмотрите Так влияние окружения исключите.
-
А если бряку поставить перед местом ошибки и вручную протопать и посмотреть вокруг ?
На всякий случай прицепил каскады от моей версии, сейчас сам попробую загрузить у себя.
UPD: прогнал у себя на коде:
std::string cfname = "lbpcascade_frontalface.xml";
cv::CascadeClassifier faceCascade;
faceCascade.load(cfname);Все без ошибок. Студия 2019, виндовс 10, opencv 4.2 .
-
А рабочая папка правильно установлена ? Если бросить каскад в папку с ехешником и запустить отдельно. Тоже падает ?
-
Обучил свой вариант PR Net, задеплоил на C++ под ncnn. Проект можно скачать здесь: https://github.com/Smorodov/PrNet_cpp .
Сетка работает неплохо, но хотелось бы с текстурой. Текстуру я сдираю с маской видимости. Но хотелось бы более красивой картинки. Есть мысль, что GAN в данном случае могла бы помочь. Может кто встречал что-нибудь по теме?
-
Коррекция кадров видео
в OpenCV
Опубликовано · Report reply
Готовых решений не знаю, но можно попробовать слепое разделение источников (blind source separation).
Снимаете 2 кадра A и B.
делаете из них 3 смеси в разных пропорциях.
I1=k1*A+(1-k1)*B
I2=k2*A+(1-k2)*B
I3=k3*A+(1-k3)*B
На самом деле это будут смеси из 3 изображений A, B, и виньетки.
Раскладываем на 3 источника, затем вычисляем коэффициенты искажения цвета.
Что то типа этого: