Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 5
1

Минимизация точек на контуре

29.09.2016, 21:41. Показов 1038. Ответов 6
Метки нет (Все метки)

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

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

Смотрел разные алгоритмы но результат пока не нашел, сейчас начал копать в сторону Egmu cv.

Снизу пример фотографии оригинала и результат работы.

Может кто то хоть что то знает, нужна любая помощь. Спасибо!
Миниатюры
Минимизация точек на контуре   Минимизация точек на контуре  
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2016, 21:41
Ответы с готовыми решениями:

Задать n точек. Найти m=3,4... точек и построить на них m-угольник такой что, количество точек , лежащих внутри и вне m-угольника , минимально различа
Задать n точек. Найти m=3,4... точек и построить на них m-угольник такой что, количество точек ,...

Определение напряжений в контуре
Дано U = 12 В R1 = 5 Ом R2 = 5 Ом Xc = 15 Ом XL = 5 Ом Найти Uab

Резонанс в параллельном контуре
привет всем. готовим доклад с друзьями по электротехнике. досталась тема "резонанс в параллельном...

Токи в параллельном контуре
парралельный колебательный контур. нужно определить {I}_{L0},{I}_{R0},{I}_{C0}. тоесть если я...

6
Эксперт .NETАвтор FAQ
10299 / 5033 / 1821
Регистрация: 11.01.2015
Сообщений: 6,224
Записей в блоге: 34
29.09.2016, 22:27 2
Sasha_ks, В OpenCV (оно же emguCV) есть функция ApproxPoly, которая делает то что вам нужно.
Пример использования можете глянуть тут.
1
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 5
30.09.2016, 08:04  [ТС] 3
Спасибо, сегодня сделаю и гляну результат . Я так понимаю он только на прямых убирает лишние точки или нет?
0
Эксперт .NETАвтор FAQ
10299 / 5033 / 1821
Регистрация: 11.01.2015
Сообщений: 6,224
Записей в блоге: 34
30.09.2016, 10:09 4
Цитата Сообщение от Sasha_ks Посмотреть сообщение
Я так понимаю он только на прямых убирает лишние точки или нет?
Оно аппроксимирует контур многоугольником. Параметр accuracy задает максимально допустимое расстояние между точками контура и аппроксимирующими ребрами.
0
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 5
30.09.2016, 14:44  [ТС] 5
Не вышло у меня с ApproxPoly не понимаю как ее применить пока что, первый раз работаю с Emgu CV, буду дальше копать но вот мне "alexander-petrov" посоветовал глянуть GraphicsPath.Flatten. я ее внедрил все работает но вот не могу понять пока реально ли оно уменьшает количество точек.
C#
1
2
float accuracy=7f; 
myPath.Flatten(translateMatrix, accuracy);
не могу элементарно взять от сюда массив point'ов myPath.Flatten(translateMatrix, accuracy);
что бы сверить
Если брать так то points.Count() и myPath.PointCount то выводит одинаковое значение размера..
Вообщем разбираюсь
0
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 5
30.09.2016, 15:11  [ТС] 6
Разобрался , и понял почему количество одинаковое
надо просто удалить повторы.
1.тхт - оригинал
2.тхт - после обработки
сейчас удалю повторы и отпишусь
Миниатюры
Минимизация точек на контуре  
0
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 5
30.09.2016, 15:28  [ТС] 7
Сделал, точек становиться меньше ,но это не то, много не правильно выходит , на пример линии он очень плохо обрабатывает записывает те же координаты .есть еще какие то советы ?
0
30.09.2016, 15:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2016, 15:28

Найти максимальный ток в контуре
Частота колебательного контура 1МГц,электроемкость конденсатора 1мкФ. При колебаниях максимальная...

Определить емкость в колеблющемся контуре.
Помогите, пожалуйста, решить: Частота свободных колебаний в контуре равна 250 кГц. Определить...

задача на электромагнитные колебания в контуре
Батарею из двух одинаковых конденсаторов емкостью С=0.01 мкф каждый заряжают от источника...

Резонанс в последовательном колебательном контуре
Вопрос такой почему график Uс начинается с большей точки и в конце стремиться к 0, а Uk наоборот с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru