|
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 11
|
|
Emgu cv. Изометрия окружности24.04.2016, 12:02. Показов 4511. Ответов 15
Метки нет (Все метки)
Доброго времени суток. Прошу подсказки, в какую сторону копать. Суть вопроса: на вход подается фотография окружности сделанная откуда-нибудь сбоку, сверху и т.п. К окружности (при фотографировании) подставлена "шахматка" (листок с шахматной клеткой), которая должна помочь в преобразовании изображения. Необходимо преобразовать фотографию из исходного вида во фронтальный. Подойдет любая информация, будь то раздел геометрии, который можно почитать или функции библиотеки emgu cv. Надеюсь вопрос объяснил понятно. Спасибо за внимание.
0
|
|
| 24.04.2016, 12:02 | |
|
Ответы с готовыми решениями:
15
Изометрия клик мыши
|
|
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 11
|
|
| 24.04.2016, 14:19 [ТС] | |
|
Storm23, вот.
0
|
|
|
|
|||||||
| 24.04.2016, 16:15 | |||||||
2)Бинаризируем. 3)Выделяем контуры, аппроксимируем прямыми, фильтруем. 4)Обратное перспективное преобразование. Проект целиком (EmguCV 2.2, x86)
6
|
|||||||
|
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 11
|
|
| 06.05.2016, 12:01 [ТС] | |
|
А насколько точным будет, предложенное вами, преобразование? Просто, если использовать шахматку, то известен размер клетки. Далее, как мне кажется, мы можем с помощью аффинного или перспективного (пока не разобрался) преобразования, на основе этой самой длины, более точно преобразовать изображение во фронтальный вид.
Добавлено через 16 минут В emgu даже методы специальные имеются, если не ошибаюсь.
0
|
|
|
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 11
|
||||||
| 13.05.2016, 14:34 [ТС] | ||||||
0
|
||||||
|
|
||
| 13.05.2016, 15:05 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 11
|
|
| 15.05.2016, 15:47 [ТС] | |
|
Странно, но при c.Total == 4 значения c.Area не превышают 25. Это при том, что minArea приблизительно = 14 000.
Добавлено через 3 часа 1 минуту При Total = 133 Area получилась = 30 000, но разница с фильтруемым параметром (Total) очень большая. Не подскажите в чем проблема?
0
|
|
|
|
||
| 15.05.2016, 16:48 | ||
|
Скорее всего лист бумаги не выделился как прямоугоьник на бинаризированном изображении. Нужно настроить параметры бинаризации. Для контроля бинаризированного изображения - сохраняйте изображение gray в файл и визуально посмотрите как бинаризируется.
0
|
||
|
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 11
|
|
| 15.05.2016, 16:52 [ТС] | |
|
То же самое изображение, что я прикреплял как исходное.
0
|
|
|
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 11
|
|
| 15.05.2016, 16:56 [ТС] | |
|
Вот оно.
0
|
|
|
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 11
|
|
| 15.05.2016, 17:36 [ТС] | |
|
Вот они.
0
|
|
|
|
||||||
| 15.05.2016, 21:05 | ||||||
|
WelcomeToJam,
В коде есть параметр accuracy, увеличьте его. Поставьте его равным например 5. Немного теории. Accuracy - это максимальная погрешность аппроксимации (в пикселах). Когда вы выкладывали предыдущее изображение, у него было разрешение 427x551 и accuracy= 1 было достаточно, что бы аппроксимировать лист бумаги прямоугольником. Но вы тестируете на изображении в большем разрешении: 1116x1512. Поэтому ваша аппроксимация получается слишком подробной. Вот такой: Здесь показан увеличенный фрагмент края листа. Красные линии - это линии аппроксимации. Зеленые точки - это концы этих линий. Вам нужно получить ровно 4 линии и 4 точки, которые будут апроксимировать ваш лист бумаги как прямоугольник. Но на рисунке видно, что апроксимация слишком подробная и аппроксимация содержит множество мелких линий. Поэтому ее нужно сделать более грубой. Для этого и повышается параметр accuracy. Вот тот же фрагмент изображения для accuracy = 5: Как видите, теперь края листа аппроксимируются ровной линией, с ровно одной точкой в углу. Как нам и нужно. В целом, если вы заранее не знаете какого размера будет изображение, и вам нужно что бы алгоритм работал при любых разрешениях, то вам нужно: 1) Либо высчитывать значение accuracy, исходя из размеров изображения. Например по формуле: accuracy = img.Width / 20; 2) Либо же наоборот, параметры оставлять константыми, но само изображение предварительно ресайзить к нужному размеру (например к ширине 800). Я обычно пользуюсь вторым способом, потому что параметров бывает очень много и тяжело их подстраивать под разные размеры изображения. К тому же, если изображение слишком большое, то увеличивается время обработки кадра, снижается перформанс. И еще, вот вам немного измененный вариант исходника: Кликните здесь для просмотра всего текста
Для того, что бы вам было легче отлаживать, эта версия сохраняет на диск два изображения - бинаризированное и с отрисованными аппроксимационными линиями (в Debug конфигурации).
0
|
||||||
|
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 11
|
|
| 18.05.2016, 18:11 [ТС] | |
|
accuracy = img.Width / 20? Возможно, вы имели ввиду 200? А то цифра больно большая получается.
0
|
|
|
|
|
| 18.05.2016, 18:42 | |
|
0
|
|
| 18.05.2016, 18:42 | |
|
Помогаю со студенческими работами здесь
16
3-ий вид детали и изометрия Изометрия. Выделение клетки 2d графика и изометрия в java Разработка игр. Изометрия на плоскости Определить какая из точек лежит на окружности, какая внутри окружности, а какая вне окружности Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|