
testkorob
Пользователи-
Content count
8 -
Joined
-
Last visited
Community Reputation
0 НовичекAbout testkorob
-
Rank
Новичок
-
так всё в конечном итоге сводится к линейным уравнениям, даже та же окружность от системы из 3 уравнений преходим к двум, квадраты пропадают и уравнения становятся линейными за approxPolyDP спасибо, пойду изучать
-
извините, не заметил, что по той ссылке есть ссылка на гитхаб там всё равно как то все очень сложно я только за апроксимацию/упрощение встроенными средствами, вот только какими? я только эрозию пытался использовать, линии всё равно толстые. про метод Дугласа-Пекера если честно впервые слышу беглое гугленье опять меня напугало большим количеством непонятного кода неужели в opencv нельзя получить кривую? прямую же там можно найти, оно как то её усредняет, а почему с кривыми такая беда?
-
сколько умных людей Вы упомянули... я имел ввиду все точки контуров у меня их получается, в зависимости от ситуации конечно, где то 600-800 каждый кадр и каждый кадр считать всю эту громоздкую математику? как пользоваться RANSAC так и не разобрался, МНК для прямых понятен, для старших порядков не очень, математика и объем вычислений огромный, разве что случайным образом выбирать десяток точек из контура, в надежде что они будут нормально распределены...
-
но ведь для МНК нужно обрабатывать все найденные точки, ведь если я буду брать только часть нет уверенности что они будут нормально распределены, а точек то там огого сколько боюсь не справится комп при работе в реальном времени... может быть в opencv есть какой то встроенный метод усреднения?
-
в том то и дело, что вопрос, как найти точки, если использовать метод findContours, то в массиве оказывается две линии (внешний край дуги и внутренний)при чём они мам перепутаны и как их разделить я не знаю, между ними хоть расстояние и не большое, но это существенно влияет на детектирование окружности методом трёх точек а как найти центр окружности и радиус по трём точкам вообще вопросов нет, это ж система из трёх уравнений с тремя неизвестными, немного алгебраических преобразований и координаты центра находятся решением системы из двух линейных уравнений, радиус же находится подставив точки в уравнение окружности вот что получается после findContours с апроксимацией, извините за кривые руки
-
проблема в том что там получается контур состоящий из двух рядов точек, внешней и внутренней и как их разделить или усреднить не понимаю
-
она как то не адекватно работает, по крайней мере у меня, когда дуга такая как на фотке выше, она её не находит, когда больше похожа на окружность находит сразу штук 10, даже если использовать упрощения и убрать мусор я думаю может как то можно просто определить линию, а после findContours даст мне координаты точек, по которым с смогу найти уравнение этой кривой, а дальше и центр, вопрос только как это определить в виде кривой, а не контура
-
как мне узнать центр окружности и радиус дуги, если видна только её часть?