![]() |
|
|
![]()
|
|
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
допустим у меня есть некоторая дуга на которой я могу проставить точки вручную примерно через равные промежутки и есть вторая дуга выгнутая несколько подругому, мне как то выработать методику их сравнения чтобы сравнить на сколько они отличаются вывести какую либо метрику.
Добавлено через 2 минуты и 29 секунд и да дуга в общем случае не ложится на окружность, т.е. к одному концу может быть более выгнутая. |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
пример данных
|
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
попробовал интерполяцию полиномом отсюда
http://alexeypetrov.narod.ru/C/sqr_less_about.html но не понятен момент, допустим я беру степень полинома 5 и 2 последних члена =0, то ли не надо такую большую степень брать, то ли точности не хватает, а при бОльших степенях вообще не выводит. еще вопрос адекватно ли сравнивать 2 полинома по их коэффициентам? и какую на этом можно построить метрику? |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
||||
|
||||
| Pavia |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
||||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
я понял, проблема в том, что я получаю формулу дуги в аналитическом виде в в виде полинома, но они получаются несравнимы по коэффициентам полинома, т.к. получается, что реальная дуга находится на каком либо отрезке полинома.
тогда стоит поставить вопрос так сравнимы ли куски полиномов одной степени? |
|||
|
||||
| mrgloom |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
там вообще задача сводится к нахождению центра из которого идет подсчет и параметра конст
(x,y)->(u,v)
хотя центр наверно можно задать так
т.е. на 2Д плоскости мы имеем несколько дуг, типа изолиний, которые нам сформировала данная функция и надо по этим дугам восстановить функцию. Добавлено через 2 минуты и 14 секунд т.е. наверно мне надо эту функцию аппроксимировать точками, только вот каким методом? Это сообщение отредактировал(а) mrgloom - 19.7.2012, 17:38 |
||||
|
|||||
| Pavia |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Ты хоть сам то понял что сказал? |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
объясняю на картинках
вот есть 4 дуги, я могу получить точки с каким либо шагом которые лежат на этих дугах.(теоретическия могу получить еще дуги на большем меньшем расстоянии от центра для точности) http://db.tt/jAx7fCdK эти дуги соответствуют примерно вот такому искажению http://db.tt/jud2Iki8 т.е. параметры этого искажения мне надо определить. искажение описывается таким образом
ситуация может осложняться тем, что до искажения могут быть еще перспективные искажения. http://db.tt/Di6XHmY9 т.е. получается что то типа http://db.tt/vVPn6wRz или http://db.tt/IK12lXfG т.е. в общем случае по этим дугам необходимо определить матрицу 3х3 перспективных искажений+параметры искажения описанного выше. заодно спрошу про матрицу m11 m12 m13 m21 m22 m23 m31 m32 m33 1)m33 всегда =1? 2)m11=m22=cos(phi) , m12=-m21=-sin(phi) ? (пробовал крутить в гимпе Perspective tool там значения этих элементов получались больше 1) 3) если m13 m23 сдвиг, то как можно назвать m31 m32? Это сообщение отредактировал(а) mrgloom - 20.7.2012, 09:55 |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
полное преобразование наверно будет выглядеть так
получается, что мне дугу надо как то развернуть в прямую, а то получается у меня есть только конечные координаты. а потом используя конечные и начальные координаты определить 13 параметров, т.е. получается надо 13 точек-соответствий, а если точек будет больше то можно как то увеличить точность? какой метод применяется? |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
или даже несмотря на вышеописанную точную формулу взять и все эти точки и получить двумерный полином через регрессию?
только мне надо, как бы не двумерную функцию, а поле заданное из центральной точки с зависимостью U(x,y) V(x,y), не очень понятно как его задать. пример данных
так это выглядит в точках 9 564 1120 10 555 1250 11 557 1350 12 554 1470 13 551 1600 14 548 1720 15 546 1850 16 546 1970 17 543 2090 18 545 2220 19 545 2340 20 549 2460 21 550 2590 22 554 2710 23 559 2840 24 563 2960 25 571 3090 26 576 3210 27 586 3330 28 589 3380 29 598 3500 30 616 3720 31 623 3770 32 592 611 33 606 3600 34 695 93,1 35 765 87 36 857 78,5 37 922 72,6 38 997 67,1 39 1070 61,6 40 1150 56,2 41 1210 52,5 42 1280 48,5 43 1350 45,3 44 1420 42,6 45 1490 40,4 46 1550 38,3 47 1610 36,3 48 1680 35,6 49 1750 33,9 50 1820 33,7 51 1880 33 52 1940 32,6 53 2000 32,6 54 2060 32,6 55 2110 33 56 2150 33,2 57 2200 33 58 2250 33,4 59 2290 35 60 2340 35,2 61 2400 36,9 62 2450 38 63 2490 38,7 64 2540 40 65 2580 41,8 66 2620 42,4 67 2660 44,8 68 2700 45,9 69 2750 47,9 70 2790 50,3 71 2840 51,4 72 2880 53,6 73 2940 56 74 2980 59 75 3030 61,9 76 3070 63 77 3110 65,6 78 3160 68,4 79 3210 71,9 80 3260 75,2 81 3320 79,6 82 3370 83,9 83 3420 87,9 84 3460 90,3 85 3510 94,2 86 3560 99,7 87 3610 104 88 3670 110 89 3730 115 90 3780 120 91 3820 124 92 3850 126 93 3860 171 94 3870 225 95 3870 282 96 3880 334 97 3880 389 98 3890 454 99 3900 498 100 3900 550 101 3910 602 102 3910 654 103 3910 707 104 3920 754 105 3920 803 106 3930 849 107 3930 895 108 3930 941 109 3940 986 110 3940 1020 111 3940 1070 112 3940 1120 113 3940 1160 114 3950 1210 115 3950 1250 116 3950 1290 117 3950 1330 118 3950 1380 119 3950 1410 120 3960 1450 121 3960 1500 122 3960 1540 123 3960 1570 124 3960 1630 125 3960 1670 126 3960 1730 127 3960 1780 128 3960 1830 129 3960 1870 130 3960 1910 131 3960 1950 132 3960 2000 133 3960 2050 134 3960 2090 135 3960 2150 136 3960 2200 137 3960 2260 138 3960 2310 139 3960 2360 140 3960 2420 141 3960 2480 142 3950 2540 143 3950 2590 144 3950 2640 145 3950 2680 146 3950 2720 147 3950 2760 148 3950 2790 149 3940 2850 150 3940 2900 151 3940 2960 152 3940 3010 153 3930 3050 154 3930 3090 155 3930 3140 156 3930 3180 157 3920 3230 158 3920 3270 159 3920 3310 160 3910 3360 161 3910 3410 162 3910 3460 163 3900 3520 164 3900 3570 165 3900 3610 166 3890 3670 167 3890 3720 168 3820 3730 169 3760 3740 170 3690 3750 171 3620 3750 172 3560 3760 173 3510 3770 174 3450 3770 175 3380 3780 176 3320 3780 177 3250 3790 178 3200 3790 179 3150 3800 180 3100 3800 181 3060 3800 182 3010 3800 183 2960 3810 184 2910 3810 185 2860 3810 186 2800 3810 187 2750 3820 188 2700 3820 189 2660 3820 190 2620 3820 191 2580 3820 192 2520 3820 193 2470 3820 194 2420 3830 195 2370 3830 196 2320 3830 197 2270 3830 198 2210 3830 199 2160 3830 200 2090 3830 201 2020 3830 202 1920 3830 203 1970 3830 204 1860 3830 205 1790 3830 206 1710 3830 207 1660 3830 208 1590 3820 209 1530 3820 210 1470 3820 211 1420 3820 212 1370 3820 213 1320 3820 214 1270 3810 215 1200 3810 216 1140 3810 217 1080 3800 218 1020 3800 219 948 3790 220 883 3790 221 827 3790 222 765 3780 223 704 3780 224 654 3770 так это выглядит в точках http://dl.dropbox.com/u/8841028/Graph_points.png в итоге я хочу получить картинку типа такой и коэффициенты полинома http://www.radiomaster.ru/cad/mc12/glava_13/30.gif Это сообщение отредактировал(а) mrgloom - 20.7.2012, 11:41 |
|||
|
||||
| Pavia |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
mrgloom,
Используй МНК.
Спроси у создателей Гимпа. Скорее всего да. Это из перспективы выводится. 2)
нет конечно. M это матрица. Её можно представить в виде. M=I*A*R_X*R_Y*R_Z*T I - единичная матрица A - матрица масштаба R_X,R_Y,R_Z матрицы поворота относительно оси. T - матрица переноса 3) Матрица это матрица зачем что-то выдумывать? Вообщето они за поворот по X и Y отвечают. M*V V=(X,Y,1)^t New_X:=m11*X+m12*Y+m13*1 New_Y:=m21*X+m22*Y+m23*1 New_Z:=m31*X+m32*Y+m33*1 u=New_X/New_Z v=New_Y/New_Z |
||||||
|
|||||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
нашел где можно попробовать curve fitting для различных функций, только не понятно как задавать мою функцию
http://zunzun.com/
или надо выразить u(v)?только непонятно возможно ли это? по сути у меня есть только точки (u,v), а точек (x,y) у меня нету. |
|||
|
||||
| mrgloom |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
я просто не понимаю как мне задачу сформулировать под МНК если у меня есть
и набор (u,v) точек. т.е. как вписать дугу состоящую из точек в полином я знаю, но это не то. не знаю возможно можно можно игнорировать вышеприведенную формулу и работать только с множеством точек u(v), но тогда какую модель выбирать? двумерный полином?
http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%...%BE%D1%82%D0%B0 матрица поворота вокруг оси Z. или это не то всё таки?
как такая декомпозиция называется? и я не понимаю почему у нас фигурирует еще и координата Z мы же вроде на плоскости работаем?
вроде бы афинные преобразования когда 6 неизвестных, а перспективные преобразования когда 8 , но так и не понятно может быть, что m33 не =1 и как такое преобразование называется. |
||||||||
|
|||||||||
| Pavia |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Невозможно.
Разбей свои точки на 4 кривых. К примеру левая вертикальная. x=0 y=0...1 шаг возьми равномерным по числу точек. Аналогично для других 3 кривых. Это сообщение отредактировал(а) Pavia - 20.7.2012, 12:57 |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |