LINUX.ORG.RU

Простая геометрия. Объекты на прямой.

 


1

3

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

Конечно же всё не очень просто. Все элементы с какими-то отклонениями по координатам. Но нужно найти те, которые находятся именно наиболее на одной прямой.

Нет. Не каждые два элемента конечно, а так чтобы была выявлена «прямая» относительно большинства находящихся на этой «прямой» элементов.

Добавлю, что большинство элементов (например 6 из 10) находятся вполне точно относительно прямой, а остальные могут ощутимо отклоняться.

Есть ли быстрые и точные алгоритмы решающие подобные задачи?



Последнее исправление: HIS (всего исправлений: 3)

Проекция точек (предметов) на плоскость, после чего точки соединить и найти центр фигуры. А дальше перпендикулярная прямая от плоскости и параллельные к фигурам.

Это если я правильно вас понял.

Korchevatel ★★★★★
()
Ответ на: комментарий от Korchevatel

Я тоже не совсем понял. Как соединить точки в фигуру и к чему перпендикуляр? К каким фигурам?

HIS
() автор топика

Строишь bet fit line, отсеиваешь точки с отклонением больше твоего «ощутимо», строишь best fit line для оставшихся точек.

tyakos ★★★
()
Ответ на: комментарий от anonymous

Ну-да, ну-да. Особенно Тессеракт.

Говнище ещё то.

HIS
() автор топика
Ответ на: комментарий от tyakos

Как собственно находить этот «best fit line»?

HIS
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Да. интересный пример. Но как я понял у тебя в задаче уже есть отрезок.

Мне же нужно найти наиболее вероятный отрезок из нескольких точек и «отбросить» те что туда не входят.

Почти противоположная задача.

HIS
() автор топика
Ответ на: комментарий от HIS

Ну, есть точки (позиции элементов) то минимум две точки должны быть наиболее расположены к некой линии которая плучается может быть вообще между точками, а не на них. Тут проблема таких линий будет 100500^100500. Но если наша вымышленная линия всё же должна содержать минимум 2 пересечения с двумя точками то прощще, сначала из каждой позиции элемента ведём линию в каждую позицию элемента получим на 5 элементов 25 линий хотя уникальных линий будет всего 7 затем берём линию и задаём ей толщину проходим по всем точкам, получаем линию и точки которые вошли в её толщину и так по всем линиям. Те линии которые содержат только 2 вхождения точек выбрасываем получаем набор линий в которые входят 3 и более точек. Хз я так себе нафантазировал ))

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от Harald

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

В моём варианте вообще точек на «прямой» большинство. Но да. Они лежат не точно на прямой. Никогда кроме задачек из школы ничего не бывает просто так на прямой (например).

HIS
() автор топика
Ответ на: комментарий от Harald

Ага, ты там кракозябры непонятные по ссылке показал, нипанятна ничаго же =) Есть где на пальцах что бы?

всё уже давно изобретено умными бородатыми дядьками до нас

Вово, поди им также говорили пока они бороду не отрастили )) Хотя чаще так то оно так конечно…

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от Harald

Я всегда поражался когда в неких формулах применяются наименьшие или наибольшие квадраты применительно к вычислительным технологиям на компьютерах.

Уверен, что это нужно разве что для визуализации человеку на экране. Потому как компьютер и без квадратов отличит какое число больше, а какое меньше. К тому же с большим количеством информации (потому как знак не будет теряться).

Да, если это кто не знал - благодарить не нужно :)

HIS
() автор топика
Ответ на: комментарий от HIS

Ты хотел готовый алгоритм, ты его получил, какие проблемы

Harald ★★★★★
()
Последнее исправление: Harald (всего исправлений: 1)
Ответ на: комментарий от HIS

Нужно эту задачу сформулировать как задачу оптимизации, то есть понять, в каком смысле ответ будет наиболее точным. Это один из способов. Конкретно сумма квадратов позволяет решать задачу методами линейной алгебры.

dumdum
()
Ответ на: комментарий от POLTER

Я изучал эту штуку лет 20 назад.

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

HIS
() автор топика
Ответ на: комментарий от dumdum

Сумма квадратов тут вообще ни причём как и в других методах. Сумма квадратов - это тупо для визуализации для человеков.

HIS
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Ща попробую зафигачить так как я себе нафантазировал =) Результат на ютубе скину :D Я так подумал эту фигню можно юзать в игре. Типа лазер пииуууу , луч горячий и страдают от него не только те кто в него попали, но и те кто был просто рядом и чем ближе тем сильнее ожог. Типа того. Прикольно.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Ты на фантазировал себе примерно факториал от количества точек (но по расширенности рассказа наверное больше). Факториал она не очень хорошая вещь когда точек много.

HIS
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

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

HIS
() автор топика
Ответ на: комментарий от HIS

Ну я то не то ))))) Ну можно ещё от каждой точки рисовать окружность, далее смотреть кто в эту окружность смотрит. Делить её на части 4/8/16 получая направления в «толщину» которых могут входить другие точки. Тогда при каждой интерации построения круга мы убираем всё больше и больше точек которые не нужно сравнивать друг с другом. И чем точек больше тем меньше сравнений. Если я ничего не напутал то вроде прикольно =) Но я себе первый вариант сделаю. Миллионы точек мне не надо, а на малых просто сделать и пригодится, но это я уже так. для себя.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от HIS

Нигавари пока ничего! Давай бенчмарк устроим. Только условие место действия 2D пространство, сколько точек будем обрабатывать? Чур результат визуализируем как то. Где видно найдённые линии. Точки будем генерировать сами рандомно или сделаем заранее некий список 100/1000/10000/1000000 точек?

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

эээ… у тебя есть координаты точек? или тупо растровое изображение?

Я вообще работаю с растром как исходник.

Ну я в этом деле вообще специфический парень на ЛОРе. И тролли с типа про нейросети и обучить за пол часа на «какашках»… это не ко мне. Не в той форме как я работаю. Я не с их говнонейросетями работаю.

Растр то растром - но в итоге я получаю векторные объекты с которыми уже работаю по координатам.

HIS
() автор топика
Ответ на: комментарий от HIS

Давай пусть с интригой будет похер, дай мне данные скарее! Похер какие они! Я всё сожру! Нет у меня нейросетей никаких

Я вообще работаю с растром как исходник.

Давай картинку, или чё там структура записанная в файл, массив интов Ваще посрать!

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

Ну ты не сильно понял идею.

Я уже нашёл объекты, которые точно должны быть. Но не все из-за помех визуальных оказались на местах как предполагалось. Просто нужно найти из более точно расположившихся коррекцию для других которые из-за помех не оказались на своих метах в конечном изображении.

HIS
() автор топика
Ответ на: комментарий от HIS

Да. Все должны быть в линию построены. Просто не все адекватно определились на местах из-за помех видеокамеры.

HIS
() автор топика
Ответ на: комментарий от HIS

Ок есть картинка сырая из камеры в ней не всё как надо, ты своим алгоритмом фиксишь косяки до нужного состояния. Ок. Давай мне снимок камеры (не порнуха линейнаааяяя? ахаха там) я его фильтрую и показываю результат. Ну или не фильтрую если не смогу :D Конечно хорошо бы ещё заранее посмотреть на пару картинок, до и после фикса.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от HIS

Я то ваще думал у тебя облако рандомных точек и ты ищешь принадлежные к неким трекам, например снимки из камеры вильсона и там надо вычленить именно треки вырезав всё остальное.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Ой да ладно :) сейчас поржёшь. У тебя дома этих изображений наверняка есть в карманах. :)

В общем, допиливаю игру по распознаванию купюр по серийным номерам.

Даже в сраных евро и то есть куча нюансов. Не говоря уже про доллары.

А если на купюрах помятости или грязь. Да просто тени…

Узоры дают помехи не хилые. Да тонны помех разных.

HIS
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

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

HIS
() автор топика
Ответ на: комментарий от HIS

В общем, допиливаю игру по распознаванию купюр по серийным номерам.

Ничёси игра, с реальными деньгами? Для одноруких бандитов чтоль :D ?

А если на купюрах помятости или грязь. Да просто тени…

… Тоесть с реальными деньгами? Лол софт для банкомата?

Я просто не пойму как можно играть в серийные номера кек )

Ну, ладно бенчмарк отменяется. Я понял про что-ты и какие дефекты будут из за разно жопности камер.

У тебя дома этих изображений наверняка есть в карманах. :)

Ага, две пластмассовые 200 рублёвки и всё :D Эх! Пора в самоизоляции переходить на самодиету! ахаха сук

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

Ох… Это типа шутка будет.

Ну набери детектор валют в гугл плее.

Я просто свою чуть более умную и интересную пытаюсь сделать.

Пока полный геймплей не расскажу. Но распознавание хочу довести до максимума возможного по качеству.

HIS
() автор топика

Сообщение удалено @t184256 по причине три часа ночи, а он тут троллит

Ты удивишься, но ты ошибаешься.

HIS
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Нет. Гораздо эффектнее :)

HIS
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Мой прототип уже работает со всеми популярными валютами.

Хочу как бонус впилить Русские и Белорусские рубли. Но пока на некоторых валютах не очень качественно срабатывает.

Сейчас допиливаю алгоритм.

HIS
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Ссылка есть поглядеть?

Я свои гипер пятнашки тоже долго «рожал»… Вроде симпатичные получились.

HIS
() автор топика
Ответ на: комментарий от HIS

Ну, просто шарик. Прыг, прыг прыгает вперёд, препятствия там всякие ^.^ ловушечки. Через 1 минуту игры хочется мягко так с ноги вдарить пяткой в монитор, ну или клавиатуру об колено сломать. Добрая такая игра про шарик прыг, прыг =)

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от HIS

Ссылки пока нет. Рано ещё. Когда закончу я на лоре отпишу в любом случае =) Ну за проприетарщину меня конечно говном закидают и за то что наполняю стим очередным шлаком. Но чё бы на холяву разок не поспамить то =) Есть раздел games где вроде как можно =)

LINUX-ORG-RU ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.