Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Имеется небольшая задача по распознованию линии на поверхности / 25 сообщений из 28, страница 1 из 2
24.02.2005, 19:24
    #32932152
Void666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Посоветуйте знающие люди с чего начать, теория, алгоритмы.
...
Рейтинг: 0 / 0
24.02.2005, 19:32
    #32932169
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
а линия какая?
если кривая - может ли быть замкнутой?
что за поверхность, что еще на поверхности.

и что должно быть на выходе алгоритма?
...
Рейтинг: 0 / 0
24.02.2005, 20:04
    #32932198
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
В векторной графике это называется трассировкой. Может поискать по этому ключевому слову?
...
Рейтинг: 0 / 0
25.02.2005, 07:27
    #32932436
Void666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
alex_kа линия какая?
если кривая - может ли быть замкнутой?
что за поверхность, что еще на поверхности.

и что должно быть на выходе алгоритма?

Нее обычная прямая 2D линия (прямоугольник), с наклоном к одной из осей координат., будет использоваться для калибровки дивайса, На выходе должны быть координаты центра этого прямоугольника. Просто раньше никогда не сталкивался с таким классом задач, поэтому и спрашиваю с чего начинать
...
Рейтинг: 0 / 0
25.02.2005, 07:34
    #32932443
Void666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
maytonВ векторной графике это называется трассировкой. Может поискать по этому ключевому слову?

посоветуй книгу какую нибудь ? ну или ссылку, в поиске, в основном, находит трассировку в различных пакетах: Adobe, Corel и пр
...
Рейтинг: 0 / 0
25.02.2005, 07:53
    #32932459
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
если фон однородный, то можно прощще сделать.
перебираешь все пикселы в изображении и находишь левый верхний отличный от фона, правый верхний, левый нижний правый нижний.
и все, берешь разницу, делишь пополам прибавляешь к минимуму по обоим осям, вроде получишь что нужно
...
Рейтинг: 0 / 0
25.02.2005, 10:34
    #32932728
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Void666 maytonВ векторной графике это называется трассировкой. Может поискать по этому ключевому слову?

посоветуй книгу какую нибудь ? ну или ссылку, в поиске, в основном, находит трассировку в различных пакетах: Adobe, Corel и пр

Я понял. То есть тебе нужно не просто трассировать а создать какой-то софт для трассировки. Уточни постановку:

1) Что поступает на вход? Растровая картинка? Цветная? В каком виде? Есть ли на картинке другие фигуры? Картинка зашумлена?
2) В каком виде надо получить результирующие координаты? Четыре точки на плоскости? Или центр прямоугольника и угол разворота? Какие требования к времени работы алгоритма (обычно алгоритмы такого класса любят работать о-очень долго).
...
Рейтинг: 0 / 0
25.02.2005, 11:02
    #32932822
Void666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
1) Что поступает на вход? Растровая картинка? Цветная? В каком виде? Есть ли на картинке другие фигуры? Картинка зашумлена?


Матрица, элементы который типа byte или long - это будет поверхность, на которой есть некая линия, естественно картинка зашумлена, но это вообщем то не проблема, уже есть фильтры которые убирают некоторые шумы.


2) В каком виде надо получить результирующие координаты? Четыре точки на плоскости? Или центр прямоугольника и угол разворота? Какие требования к времени работы алгоритма (обычно алгоритмы такого класса любят работать о-очень долго).

по времени ничего не скажу, если картинку векторизовать (что предлагалось сделать трассировкой) то это скорее всего будет граф (из которого и нужно будет получить координаты линии). Самый конечный результат это вектор середины прямоугольника - линии, т.н. best fit line - но это уже вторая задача (ее я решу, не проблема).

Есть ли готовые алгоритмы трассировки ? AlgoLab Raster to Vector Conversion Toolkit - не предлогать, нужны исходники алгоритма.
...
Рейтинг: 0 / 0
25.02.2005, 18:13
    #32934381
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Если линия красная, то пускаешь по ней собачку (алгоритм по лабиринту по правой руке) и она пойдёт по линии-реке красного цвета. Придерживаясь берега. По ходу делать сброс координат (метать икру). Алгоритм движения по краю берега-цвета можешь сам написать.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
25.02.2005, 18:43
    #32934442
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
да что за сложности на такой простой задаче?
простым перебором всей матрицы, без всяких писающи по ветру красных собачек, необходимо найти левый верхний, правый верхний, левый нижний и правый нижний граничные пиксели.
из них будет две пары, с расстоянием между точек пренебрежительно меньшими нежели расстояние между другими.
эта пара точек будет по суди являтся концом отрезка.
все.
задача на час делов если матрица уже в памяти.
...
Рейтинг: 0 / 0
26.02.2005, 11:00
    #32934769
Vlad17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Из всего вышеперечисленного мне, как разработчику программы для преобразования raster-to-vector, осталось многое непонятным.

1.Неизвестны размеры прямоугольника.
2.Толщина линий прямоугольника.
3.Могут ли линии распадаться на цепочку отдельных точек.
4. Известен ли размер прямоугольника в пикселях.
5.Точность определения положения центра прямоугольника (~0.5 пикселя? ~0.1 пикселя?)
6.Время, затраченное на поиск центра прямоугольника.

Ситуацию, думаю, могла бы сильно прояснить картинка с этим прямоугольником вместе с ответом на последние три вопроса.

В зависимости от ответа на вопросы можно было бы посоветовать автору, как достичь конечного результата с наименьшими затратами.

Если к программе нет каких-то особых требований (например, при наличии сильной зашумленности определять координаты центра с точностью долей пикселя), то задача несложная. В противном случае небольшая задача может превратиться в большую задачу.
...
Рейтинг: 0 / 0
27.02.2005, 14:25
    #32935384
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Позвольте, мне, коллеги сказать свое слово.

Vlad17Из всего вышеперечисленного мне, как разработчику программы для преобразования raster-to-vector, осталось многое непонятным.

1.Неизвестны размеры прямоугольника.
2.Толщина линий прямоугольника.
3.Могут ли линии распадаться на цепочку отдельных точек.
4. Известен ли размер прямоугольника в пикселях.
5.Точность определения положения центра прямоугольника (~0.5 пикселя? ~0.1 пикселя?)
6.Время, затраченное на поиск центра прямоугольника.

Ситуацию, думаю, могла бы сильно прояснить картинка с этим прямоугольником вместе с ответом на последние три вопроса.

В зависимости от ответа на вопросы можно было бы посоветовать автору, как достичь конечного результата с наименьшими затратами.

Если к программе нет каких-то особых требований (например, при наличии сильной зашумленности определять координаты центра с точностью долей пикселя), то задача несложная. В противном случае небольшая задача может превратиться в большую задачу.

Полностью поддерживаю Vlad17. Если картинка получена путем сканирования рисунка или чертежа то надо говорить о системах распознавания образов (СРО).

Все вышеописанные алгоритмы являются частными случаями.

Предлагаю Void666 опубликовать образец рисунка для экспертизы. Может мы, коллеги не совсем правильно представляем себе саму постановку.

С уважением
Mayton
...
Рейтинг: 0 / 0
28.02.2005, 08:14
    #32935686
Void666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
mayton
3.Могут ли линии распадаться на цепочку отдельных точек.


нет, но края линии, плавно переходят в фон, по сути это даже и не линия, а проекция впадины


4. Известен ли размер прямоугольника в пикселях.

глубина, ширина.


5.Точность определения положения центра прямоугольника (~0.5 пикселя? ~0.1 пикселя?)

~ 1 пиксел


6.Время, затраченное на поиск центра прямоугольника.

неважно. центр это 2 задача, будут точные координаты прямоугольника, центр посчитать уже будет не сложно.


Ситуацию, думаю, могла бы сильно прояснить картинка с этим прямоугольником вместе с ответом на последние три вопроса.

В зависимости от ответа на вопросы можно было бы посоветовать автору, как достичь конечного результата с наименьшими затратами.

Если к программе нет каких-то особых требований (например, при наличии сильной зашумленности определять координаты центра с точностью долей пикселя), то задача несложная. В противном случае небольшая задача может превратиться в большую задачу.

хм, ну вы наверное догадывайтесь что запостить рисуночек не получится :) - это не чертеж, наличие большого количества шума.

Меня интересуют чисто теоритические аспекты вопроса и существующие практические реализации, к примеру векторизация (что мне удалось накопать):
1. AutoTrace - http://autotrace.sourceforge.net/index.html - неподходить, в силу определенных специфических особенностей картинки (векторзованный рисунок получается в виде большого множества маленьких векторов).
2. http://www.ocrai.narod.ru/vectory.html (волновой алгоритм для нахождения скелета растрового изображения) - интересный подход, только я не знаком с волновыми алгоритмами, где можно почитать о них еще ?

Другие способы:

3. Cross Corellaton - http://astronomy.swin.edu.au/~pbourke/analysis/correlate/ неподходит, из-за того что образец может быть повернут.
...
Рейтинг: 0 / 0
28.02.2005, 08:18
    #32935691
Void666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
могу еще добавить что фон сильно не однородный, есть идея первоночально отфильтровать картинку Собелем (Sobel), (посмотреть можно тут: http://www.jasonokane.com/tu/351cos/sobel/ )
...
Рейтинг: 0 / 0
28.02.2005, 09:50
    #32935792
Vlad17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Для меня как раз непонятно, что мешает вырезать из изображения только
прямоугольник с небольшой полоской изображения вокруг контура.

Если продемонстрируете картинку с прямоугольником и укажите затраты машинного времени на поиск этого прямоугольника, то думаю, что смогу предложить Вам способ решения задачи, который не потребует больших затрат времени на решение задачи.

Посмотрел качество выделения линий http://www.jasonokane.com/tu/351cos/sobel/. Во-первых, качество выделения edge бывает и получше.
Второе - я бы не стал идти по пути выделения линий. Задачу проще решать именно в той постановке, в которой она задана – искать прямоугольник сразу. Это позволит избавиться от проблем, связанных с возможным разрывом линии прямоугольника.
...
Рейтинг: 0 / 0
28.02.2005, 10:27
    #32935867
Void666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Vlad17Для меня как раз непонятно, что мешает вырезать из изображения только
прямоугольник с небольшой полоской изображения вокруг контура.


Шумы, картинка даже не векторизуется. Кстати, я все больше склоняюсь к идее волнового алгоритма, сейчас занимаюсь реализацией этого алгоритма, посмотрим что получится. Если получится опубликую результат.
...
Рейтинг: 0 / 0
28.02.2005, 10:59
    #32935945
Ggg_old
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Опубликуйте все-же картинку. Есть очень хороший алгоритм выделения линий на сильно зашумленных изображениях.
...
Рейтинг: 0 / 0
28.02.2005, 11:20
    #32935990
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Ggg_oldОпубликуйте все-же картинку. Есть очень хороший алгоритм выделения линий на сильно зашумленных изображениях.
если есть алгоритм, то и опубликуй. Или это коммерческое "есть...".
...
Рейтинг: 0 / 0
28.02.2005, 13:58
    #32936437
Void666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Petro123 Ggg_oldОпубликуйте все-же картинку. Есть очень хороший алгоритм выделения линий на сильно зашумленных изображениях.
если есть алгоритм, то и опубликуй. Или это коммерческое "есть...".

да да опубликуй ну или хотя бы расскажи на чем он основан, как работает ?
...
Рейтинг: 0 / 0
28.02.2005, 14:11
    #32936460
Vlad17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Ggg_old

Есть очень хороший алгоритм выделения линий на сильно зашумленных изображениях

В данном случае нет необходимости применять алгоритм выделения линий. Алгоритм выделения прямых проще. А найти прямоугольник, размеры которого известны, еще проще. И не нужно никаких волновых алгоритмов.

Опубликуйте все-же картинку.

Теперь стало совсем непонятно, что мешает автору привести картинку.
...
Рейтинг: 0 / 0
28.02.2005, 14:50
    #32936577
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Коммерческая или государтсвенная тайна. Хм... его право. Но фрагмент то можно показать.
...
Рейтинг: 0 / 0
28.02.2005, 15:07
    #32936638
Void666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Vlad17
Теперь стало совсем непонятно, что мешает автору привести картинку.

Примерно вот так, та область посередине и будет искомой ( не совсем конечно прямоугольник :).
...
Рейтинг: 0 / 0
28.02.2005, 17:53
    #32937114
Vlad17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
Наличие картинки хотя бы дало представление о характере шума. Но вопросы остались.

1. Посредине я вижу три линии. Насколько я понимаю две крайние искомые, а посредине (довольно широкая и яркая) линия, не принадлежащая прямоугольнику?

2. Могут быть линии, сравнимые по ширине и яркости с линиями прямоугольника, быть еще где-нибудь, кроме как внутри прямоугольника?
...
Рейтинг: 0 / 0
28.02.2005, 18:04
    #32937146
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
2 Void666

Не совсем понятно. Мы видим много толстых линий. Ты мог бы отметить каким-то ярким цветом (зеленым напр) границы прямоугольника?
...
Рейтинг: 0 / 0
28.02.2005, 18:27
    #32937205
Void666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имеется небольшая задача по распознованию линии на поверхности
mayton2 Void666

Не совсем понятно. Мы видим много толстых линий. Ты мог бы отметить каким-то ярким цветом (зеленым напр) границы прямоугольника?

ммм, вообщем эти линии паралельны, это пример а не точный имидж, но суть он отражает, скажем так дедектить нужно толстую черную линию.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Имеется небольшая задача по распознованию линии на поверхности / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]