решить обратную задачу - восстановить окружности

Barbie29

есть массив с координатами точек на плоскости, которые, если нарисовать, являются окружностями. Надо получить аналитическое уравнение окружностей. Как к этому можно подступиться?

SvinkaVJeansah

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

Barbie29

хех, ресурсов, увы, нету... может, кривизну высчитывать?

Helga87

Идем по всем тройкам точек, берем для каждой тройки описанную окружность.
Затем смотрим сколько еще точек из массива лежит на текущей окружности. Если достаточно много (например, больше 6 то мы нашли, что хотели. Таким образом, мы найдем все окружности, которые у нас нарисованы на плоскости

SvinkaVJeansah

Какова максимальный размер плоскости?

Barbie29

в принципе - решение... thx!

Barbie29

640x480, только это эллипсы, а не окружности, т.к. картинка - проекция

bleyman

А как ты собираешься "банально перебрать" все точки на плоскости? =)
ЗЫ: Если имелось в виду, что у нас есть растеризованное изображение некоторого количества окружностей, то:
1) Нужно зафиксировать алгоритм растеризации.
2) нужно зафиксировать минимальный радиус, иначе прекрасный ответ - каждая точка соответствует одной (очень маленькой) окружности.
3) Заодно относительно количества окружностей неплохо бы знать что-нить.
4) И положений центров окружностей: если они всегда в узлах или центрах клеток сетки, тогда жизнь становится существенно легче - окружности растеризуются симметрично, и можно искать точное решение - типа в изображении любой окружности есть точки расположенные по четырёхугольнику. В противном случае точного решения может и не быть.
5) А дальше разнообразные эвристики.

SvinkaVJeansah

С эллипсами сложнее.

SvinkaVJeansah

т.е. помимо эллипсов там могут быть еще и отрезки?

SvinkaVJeansah

Выбираем интервал прохода точек dx, интервал прирощения радиуса dr, интервал дуги ds и макс. эксцентриситет.
1) Заполняем наше "поле" узлами квадратной dx-сеткой.
2) Для каждого узла dx сетки перебираем кольца толщины dr.
3) Для каждого кольца перебираем его сектора ds и считаем в них точки (n).
4) Если все n i-е попадают в эпсилон-окрестность, то мы нашли окр-ность в первом приближении.
Для дуги слегка модифицируем алгоритм.

bleyman

>3) Для каждого кольца перебираем его сектора ds и щитаем в них точки (n).
Не понял? Мб находим для каждой точки расстояние до эллипса?
5) после нахождения окрестности в первом приближении неплохо бы найти минимум среднего квадратического отклонения принадлежащих точек от линии по координатам центра, ориентации оси и радиусам.
Да для эллипсов именно такие переменные перебора - координаты центра, угол оси, два радиуса.
Довольно дофига, да.

SvinkaVJeansah

Я это подразумевал:

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

Barbie29

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

софт станет распространяться, как напишу, под gpl. Потому хотелось бы
сделать хорошо и спрашиваю совета.

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

Helga87

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

Julie16

А шум листьев? Я и сам-то иногда путаю... А что говорить о программе?

bvasilik

Чувак, наверное, про звук уже думал

Helga87

Гм.
Возможно.
Хотя мне кажется, если со спектром поиграться, то можно отличить.

margadon

Ага, а механическо-электрический датчик дождя ещё проще
ну типа намокающей нитки или ещё чего-то на этот манер...

Julie16

Самый простой датчик - это оптический. Чего проще чем просто посмотреть

Helga87

постановка задачи такая, дождик капает на лужицу, стоит видеокамера, от капель расходящиеся круги. В проекции с подсветкой лужицы(спец водоема) окружности всегда эллипсы и имеют четкую грань по цвету. Контурным анализом выделить координаты эллипсов я умею.
Ну раз у нас есть специальный водоем, то и специальный железный лист мы тоже сможем положить. И тогда звук станет совсем просто анализировать

Barbie29

Ага, а механическо-электрический датчик дождя ещё проще
ну типа намокающей нитки или ещё чего-то на этот манер...
датчик дождя необходим чтобы что-то закрывать, а дождь может начаться мгновенно, пока намокнет нитка - будет уже поздно что то закрывать...
Самый простой датчик - это оптический. Чего проще чем просто посмотреть
Угу, оптический - намного проще... например дождь сначала идет мелкий, на квадратный метр падает 10 капель в первые минуты, значит надо покупать 100000 датчиков, чтобы хотябы одна капля попала. Тут снимать небольшой водоем - лучшее решение(если брать стекло смотреть по отражению, то стекло будет с течением времени замутняться и его надо будет протирать, что исключает автоматику)...
Ну раз у нас есть специальный водоем, то и специальный железный лист мы тоже сможем положить. И тогда звук станет совсем просто анализировать
не подходит, как ты в Slackware и в Redhat(имеется ввиду только линукс реализация) будешь налаживать звукозапись? Тут обо всем уже подумали.

Helga87

не подходит, как ты в Slackware и в Redhat(имеется ввиду только линукс реализация) будешь налаживать звукозапись? Тут обо всем уже подумали.
Гы.
Ну раз линукс накладывает такие ограничения на взаимодействие с аппаратурой, придется заниматься распознаванием образов.
Вспомнилась поговорка: "Кыргызский комсомол - сами себе проблемы создаем, сами их решаем!"

Barbie29

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

SvinkaVJeansah

Тут выпил чуть-чуть, пришел в себя и закрался вопрос - тебе нужно определить наличие дождя, его интенсивность или еще что-то? Просто для первых 2-х пунктов вполне катит емкостной датчик типа тех, что используются в нефтянке + стандартный "собиратель осадков", которыйм используется на метеостанциях.

Barbie29

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

vall

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

Julie16

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

margadon

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

Barbie29

ну извини, 30 лет наза на решение задачи дали бы институт и любое финансирование., а сча я один. почувствуй разницу. и финансирование 200$ в мес. Вот давай и выкручивайся посмотрим, много ты че сделаешь

margadon

=)
за такое финансирование и комп нормальный с видеокамерой не сразу купишь... механику проще сделать...

Barbie29

слушай, нука нука, какая механика то? мне прям живо интересно стало картинку чтоль нарисуй.

Barbie29

вобщем вот картинка капли

а вот позже расходящиеся круги от неё:

Это поднос, сверху которого поставлена капельница из бутылки из под газировки с чуть отвинченной крышкой. ты тут с Типаглебом пообсуждали, что проекция эллипса может быть децел грушевидной или нет, хз, мне чето тож так не кажется, может ли проекция окружности с учетом перспективы и аббераций(искривление от широкопольного объектива) быть эллипсом. Либо вводить аппаратную функцию объектива, т.е. полиномами Цернике распрямлять изображенеие, тогда может и быть эллипс. Но чтобы учеть аберрации(искривление даваемое объективом) надо писать отдельный софт.
Относительно того, как добавлять воду в такую емкость, каканнить автопоилка, это уж придумано.

margadon

погодь. я сам пока не знаю, интуитив я. ща.
тебе нужно определять капли воды? сделай воронку из плохо смачивающегося материала, чтобы капли скатывались, радиуса побольше... в горлышке сделай индикатор воды (любой, хоть оптический).
или например электропроводящая пластинка определённого размера. при попадании на неё капель меняется ёмкость.
(я не физик потому могу не вполне владеть терминологией, звиняйте)
УПД:
Раскалённый диск. капля падает - вскипает и испаряется. ставим спектрограф и улавливаем линии паров воды!

Dasar

> Относительно того, как добавлять воду в такую емкость, каканнить автопоилка, это уж придумано.
Как с плавающим мусором будешь бороться?

bvasilik

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

bleyman

Йо
А если сделать преобразование фурье от картинки и внимательно воткнуть в результат?
Ну то есть это я к тому, что возможно у окружностей/эллипсов какой-то существенно специфический образ.
Произведи искперименты!

jenua82

Какая еще проблема? Сопротивление промокашки мерять?

bvasilik

Ты смогёшь его через ком-порт, скажем, померять?

jenua82

Нафуа через Ком? Я его через игровой порт померяю.

bvasilik

Да хоть через ps/2
Как?

Barbie29

прийти тетке раз в неделю посмотреть, не плавают ли там дохлые птицы не такая большая ставка

Barbie29

ну сделал я преборазование Фурье, интерпретировать результат как? все было замечательно в этом Фурье, еслиб не интерпретация результата. Круги будут в Африке кругами, или эллипсами.

bvasilik

Ничо, ща тебе ещё и АКФ предложат

Barbie29

ну и как ты его померишь? используешь встроенный гейпморте генератор? Ну и как у тебя сигнал затухнет на промокашке размером в квадратный метр при условии падения 10-100-1000 капель на оную(онаж для затухания должна стать проводящей)? Потом, промокашка инструмет одноразовый, если сделать решетку с заданным шагом, она черзе два месяца окислится(значит изменится коэффициент задухания соответствующих у-й). Я не спрашивал как сделать, я спрашивал как обратную задачу решить... ибо по истечении времени не очень понимаю, что наиболее универсально кроме оптики...

Barbie29

хз тут, автокорелляционная функция вообще мощная штука. но, имхо, не для датчика дождя.

jenua82

Нет, через PS/2 меряй сам, а вот через игровой -- это просто
Игpовой поpт: Радио ©11-96г.стp.24-26, ©12-99г.стp.28-30, ©1-2000г.стp.27

bvasilik

Да мне вообще кажется, что здесь надо совсем без математики обойтись... но как...

jenua82

См. устройство геймпорта. Он фактически меряет сопротивление 0-100кОм
Читай внимательнее, что тебе пишут. Квадратный метр -- это размер воронки. В жерле у ей промокашка, маленькая. Поменять ее раз в два месяца вроде не такая большая проблема, коль скоро дохлых ворон все равно вынимать придется.
Имхо, это глупо, городить такой огород с оптикой, для того, чтобы понять, что идет дождь.

Barbie29

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

ppplva

И все же непонятны проблемы со звукозаписью.

Barbie29

пока она намокнет - оборудование сгорит. т.к. пока она намокнет(5 минут софт сработает, даст сигнал парковать оборудование(2-3 минуты) в положение, при котором может закрываться крыша(1-2 минуты). А что такие 10 минут ливня - говорить думаю не надо.

jenua82

Чувак, она намокнет, как только первая капля ее достигнет. И тут же будет сигнал.
Хочу также напомнить, что есть такая штука, как барометр, которая позволяет помимо прочего, еще и среагировать раньше, чем начнется дождь.

Barbie29

Знаю, если поставить 100 кОм терморезистор на геймпорт, то по затуханию можно сделать замечательный термометр(у меня гдето даже софт есть для того дела). Только этот геймпорт подключить еще надо на ALSA или OSS одинаково.
по сабжу. пока она намокнет - оборудование сгорит. т.к. пока она намокнет(5 минут софт сработает, даст сигнал парковать оборудование(2-3 минуты) в положение, при котором может закрываться крыша(1-2 минуты). А что такие 10 минут ливня - говорить думаю не надо. И потом, капли до горлышка должны дотечь. Еслиб как ты говоришь, то можно былоб выдрать датчик дождя из какоййнить тойоты или деу посовременней в автосервисе. В машине дворники тоже начинают работать либо когда натечет(сопротивление изменится либо когда капля попадет на опт. датчик, от соприкосновения изменится n, который повлияет на соотноешние Снеллиуса и т.п.

jenua82

По-моему, кто-то повторяется.
Давай лучше так:
http://maximarket.ru/product_info.php?products_id=682
А что остается от 200$ мы с тобой пропиваем, идет?

Barbie29

"Оптический принцип действия" - хм, не знаю какова конструкция, но может и подойдет если время реакции быстрое. будет он улавливать полмиллиметра диамертом капли - хз. надо глянуть. Спасибо за ссылку. Пропьем т.е. я тут в дугу уже... только у меня и 200$ в месяц то нет на дело, зряплата толька грантовая

Barbie29

не уверен, что капиллярные эффекты обладают таким быстродействием.

jenua82

А ты проверь, возьми кусочек промокашки в 1кв см и плюнь на нее. Ну, или капни. Мерять сопротивление можешь мультимером

Barbie29

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

jenua82

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

jenua82

Ты эта... очки чтоли одень, брателло. Третий раз тебе пишут: воронка!

Barbie29

сколько будет стекат капля диаметром 3 миллиметра по воронке диаметром в один метро с углом раствора в 90 градусов?

jenua82

С хорошим несмачиваемым покрытием... Скатится секунды за 3-4.
А слово "барометр" ты из принципа игнорируешь?

Barbie29

блин, специфика задачи - идет дощщь или нет. Блни, я не буду тут бороться с уже продуманными вещами, мне на это времени нет. Вобщем, спасибо , Fj and ПэЖе за более менее конструктив.
Относительно Фурье, ктоб мне купил комп для фурье, чтобы успевало болльменее в реалтайме работать.

jenua82

Ага, деструктива нашел, тоже

margadon

ладно, не промокашка так не промокашка... это можно творчески понимать.
как насчёт площадки и изменения её ёмкости при осаждении на неё воды? какой-нить генератор, при нарушении добротности контура которого происходил бы срыв генерации?
кстати, туман тоже надо бы учитывать =) он если густой тоже может напакостить аппаратуре.
влажность можно измерять например по растяжению натянутого волоса. кстати, многоразовая штука.
а вообще, считывать сигналы в компьютер на так сложно как кажется. да хоть звуковой картой!

Julie16

Может тебе проще мерять разницу между кадром со спокойной водой и с текущим состоянием? Если разница большая, то идет дождь(конечно тогда водоем надо защитить от ветра).

bvasilik

Не, ну ему не нужно знать, есть ли на небе облака. Ему нужно знать, идёт ли дождь, и знать это как можно быстрее

bvasilik

считывать сигналы в компьютер на так сложно как кажется. да хоть звуковой картой!
Сигналы - да. Какой сигнал предложишь? Крик сигнальщика?

margadon

а какой хошь... например сопротивление промокашки
// хотя я так понимаю, автор треда сильно тяготеет к аналитической версии
// ну да и ладно

Barbie29

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

Julie16

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

bleyman

Эй!
А ночью ты как будешь за дождём следить?

Helga87

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

SvinkaVJeansah

Посмотри готовые датчики.

Barbie29

уже 200 грамм дернул, ща еше дополним

Jackill

Потому хотелось бы сделать хорошо
имхо: лучше всего здесь поможет метод группового учета аргументов (http://www.gmdh.net/gmdh.htm): по набору координат точек и виду искомой зависимости (уравнению окружности/эллипса с параметрами) определяет наиболее точное уравнение, описывающее эти точки.

Nugos

Что касается поиска эллипсов (да и вообще любых параметрических кривых то наиболее подходящий для этого метод - метод Хоха (или Хафа, или Hough). В интернете полно информации. Большинство ссылок по обнаружению прямых. Но местами есть про уравнения более высоких порядков.

Nugos

Что каксается дадчика дождя, то по моему наиболее подходящий метод - горизонтальный лист (можно и стекло, и металл) с прикрепленным к нему микрофоном (вероятно, можно и тензометр). Попадание капель на него должны вызывать довольно-таки ощутимые импульсы в сигнале с микрофона (тензометра).
На сколько я понимаю, так устроен датчик дождя, используемый в автомобилях. Крепится к лобовухе.

margadon

а как тебе мой экспромт - лист с изменяющейся ёмкостью - в зависимости от числа капель на нём?

FRider

Этот метод видимо не пойдет, ибо очень требователен у вычислительным ресурсам.

Nugos

Тоже, наверно, подойдет. Если изменения будут заметны, для недорогой аппаратуры.

Nugos

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

FRider

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

Nugos

// Как тут уже писали, эту задачу лучше решать не анализом изображений, а другими средствами
И я тоже принял в этом участие. Но привел ответ на заданный в начале вопрос, может кому пригодится.
Что касается шумов, то как правило они давятся вместе с полезной информацией, что в свою очередь пораждает шум другого рода: разрывы в искомых данных, в нашем случае это будут эллипсы состоящие из штрихов. Преобразования Хоха с этим легко справляется.
Оставить комментарий
Имя или ник:
Комментарий: