powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Имеется небольшая задача по распознованию линии на поверхности
28 сообщений из 28, показаны все 2 страниц
Имеется небольшая задача по распознованию линии на поверхности
    #32932152
Void666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посоветуйте знающие люди с чего начать, теория, алгоритмы.
...
Рейтинг: 0 / 0
Имеется небольшая задача по распознованию линии на поверхности
    #32932169
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а линия какая?
если кривая - может ли быть замкнутой?
что за поверхность, что еще на поверхности.

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

С уважением
Mayton
...
Рейтинг: 0 / 0
Имеется небольшая задача по распознованию линии на поверхности
    #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
Имеется небольшая задача по распознованию линии на поверхности
    #32935691
Void666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
могу еще добавить что фон сильно не однородный, есть идея первоночально отфильтровать картинку Собелем (Sobel), (посмотреть можно тут: http://www.jasonokane.com/tu/351cos/sobel/ )
...
Рейтинг: 0 / 0
Имеется небольшая задача по распознованию линии на поверхности
    #32935792
Vlad17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для меня как раз непонятно, что мешает вырезать из изображения только
прямоугольник с небольшой полоской изображения вокруг контура.

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

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


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

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

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

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

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

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

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

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

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

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

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

ммм, вообщем эти линии паралельны, это пример а не точный имидж, но суть он отражает, скажем так дедектить нужно толстую черную линию.
...
Рейтинг: 0 / 0
Имеется небольшая задача по распознованию линии на поверхности
    #32938231
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Void666:
Да нет, никакой не коммерческий. Если бы вы полазили по инету по сайтам посвященным распознаванию образов и около того, то вы бы наткнулись на этот алгоритм. Называется он Hough Transform. (пишу название по памяти).
Ваша картинка - как раз для этого алгоритма.

Дайте потом хоть знать - получилось ли.
alekcey[gav-gav]ukr[dot]net
...
Рейтинг: 0 / 0
Имеется небольшая задача по распознованию линии на поверхности
    #32938608
Void666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_old2Void666:
Да нет, никакой не коммерческий. Если бы вы полазили по инету по сайтам посвященным распознаванию образов и около того, то вы бы наткнулись на этот алгоритм. Называется он Hough Transform. (пишу название по памяти).
Ваша картинка - как раз для этого алгоритма.

Дайте потом хоть знать - получилось ли.
alekcey[gav-gav]ukr[dot]net

ндаа, задача явно выходит из рамок "частного случая", кому интересно, о преобразовании Хафа можно почитать тут:

Преобразование Хафа
Тут на английском
Реализация для окружности

для себя, все таки, я думаю что у меня частный случай, поэтому надо еще подумать...
...
Рейтинг: 0 / 0
Имеется небольшая задача по распознованию линии на поверхности
    #33086575
Void666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_old2Void666:
Да нет, никакой не коммерческий. Если бы вы полазили по инету по сайтам посвященным распознаванию образов и около того, то вы бы наткнулись на этот алгоритм. Называется он Hough Transform. (пишу название по памяти).
Ваша картинка - как раз для этого алгоритма.

Дайте потом хоть знать - получилось ли.
alekcey[gav-gav]ukr[dot]net

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


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