Výsledky 1 až 17 z 17

Téma: Algoritmus na 4-bodovou kalibraci 2D mapy?

  1. #1

    Standardní Algoritmus na 4-bodovou kalibraci 2D mapy?

    Zdar,
    neresil tu nekdo nahodou problem kalibrace 2D mapy?
    Potreboval bych napsat fci, ktere dam 4 2D souradnice bodu na mape (v pixelech) a 4 2D souradnice (v nejakem systemu, treba wgs), a nasledne mi tato fce podle zadaneho bodu [x,y] vrati prepoctene souradnice [x',y']v pixelech (a naopak, inverzni fce).
    Mam napsanou jednochou verzi pro 2-bodovou kalibraci, ktera ale predpoklada ze osy obou sour. systemu sou rovnobezne, zistil sem vsak ze mapa je asi o 0.5stupne pootocena...

    BTW mozna by stacily jen 3 body, ale asi by musely tvorit pravouhly trojuhelnik..

    EDIT:
    Aby to bylo jasny, tak tady este nacrtek (znam x1-4,y1-4 a jejich obrazy, hledam funkci f)

    Idealni by byl zdrojak v C ale postaci nejaky odkaz kde se tohle resi, zatim sem nic rozumnyho nenasel.
    Naposledy upravil RayeR; 04.09.2007 v 20:49.

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  2. #2

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    Tak uz zhruba vim jak na to, jen este nakej alg. na spocteni inverzni matice 9xn

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  3. #3

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    Pokud si dobře vzpomínám na algebru, tak inverzní matice existuje jen ke čtvercové , protože matici a inverzní matice musejí být navzájem vynásobitelné, což je u čtvercových zaručeno.
    Jeden postup je:
    napsat si vedle matice jednotkovou
    původní matici Gaussovou eliminační metodou upravit na jednotkovou a stejné operace provádět s tou druhou. Výsledkem je, že z původně jednotkové matice se stane inverzní.
    Tady jsem vygooglil popis
    http://www.kolej.mff.cuni.cz/~lmotm2...ml/node55.html
    Je tady uvedený i druhý způsob přes determinanty, ale počítat determinanty matice rozměru +-9 je IMHO blbost, složité a dlouhé. Šel bych první cestou.

    Kdyby byl zájem můžu se mrknout, jestli ještě najdu skripta, pak bych je naskenoval.

    Kód:
    for (radek = 0; radek < n; radek ++) { /* projit vsechny radky */
       pivot = matice[radek][radek];
       for (i = 0; i < n; i++)
          matice[radek][i] /= -1 * pivot;    /*vyrobit jednicku na miste na hlavni diagonale */
       
       for (i = radek; i < n - 1; i++) {       /* projdu vsechny nizsi radky mimo posledniho */
          pivot = matice[i + 1][i] / matice[i][i] * -1;  /* cislo, kterym musim vynasobit radek a pricist k nizsimu radku */
          for (j = 0; j < n; j++) {  /* tady nasobim ten radek a pricitam ke spodnimu */
             matice[i + 1][j] += matice[i][j] * pivot
          }
       }
    }
    
    /* opakovat cele obracene, to jest odspoda nahoru a vytvaret nuly nad hlavni diagonalou. Ty same operace provadet s tou druhou matici */
    Je to jenom takovy lehoučký nástřel pro inspiraci, kdoví jestli by někde nějaký index nepřetekl apod. Možná je tam i logická chyba. Kdo ví . Ale zhruba takhle se to dělá.
    Naposledy upravil Warran; 19.03.2008 v 21:52. Důvod: Opravena chyba

  4. #4

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    Jenom bych podotkl, ze vypocet pres determinanty neni obecne slozitejsi. Mnohdy (u "nehezkych" cisel nebo u matic s neznamyma) je to vyhodnejsi nez pres jednotkovou matici. Navic u algoritmizace jsou potom determinanty/subdeterminanty zasadni.
    Black holes are where God divided by zero. - Steven Wright
    2600K s AC HF14 | P8P67Deluxe s 16GB DDR3 | GTX1080 s LP2480zx | EVO850 s ICH10R | X-Fi s HD555 | TripleXtreme 360 s HPPS+ | Windows 10 + 7

  5. #5

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    Citace Původně odeslal Haste
    Jenom bych podotkl, ze vypocet pres determinanty neni obecne slozitejsi.
    To je velká pravda.
    Ale dodal bych, že než se člověk dostane na matici 3x3, tak v případě matice 9x9 to bude patrně několik rekurzivních volání. Pokud si dobře vzpomínám, tak spočítat determinant matice n x n, kde n > 3 znamená spočítat 1 determinant matice n x n a n-1 determinantů matice rozměru n - 1. A pro každou to takhle rozvíjet až do řádu 3x3. Takže to narůstá neskutečným tempem a trvalo by to neskutečně dlouho. Učitel matematiky nám jednou demonstroval, že počítat takhle determinant matice 100x100 by i nejvýkonějšímu superpočítači trvalo miliardy let (možná desítky miliard).
    Pro matici 9x9 to myslím znamená následující:
    -1x determinant matice 9x9
    -8 x determinant matice 8x8
    (snad jsem to řekl dobře, nechce se mi hledat skripta z algebry).
    Leda by se ty determinanty počítaly jinak (úprava na dolní trojúhelníkovou a pak vynásobit prvky na hlavní diagonále ??), ale to je pak rovnou možné počítat tu inverzní matici tou první metodou.

  6. #6

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    Diky,
    uz sem sehnal nakej C kod na inv. matice, sou tam hned 2 algoritmy: Gauss routine a Crout routine. Gauss ma bejt rychlejsi a mene presnej, v praxi matice 1000x1000 trvala 0,4s a rozdil chyby byl par chlupu na poslednim desetinnym miste.

    K ty matici m*n, pry existuje neco jako pseudoinverzni matice, ktera je prave pro obdelnikovy a pocita se: (AT*A)^-1*AT (kde AT je transponovana k A)

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  7. #7
    Senior Member
    Založen
    22.07.2003
    Bydliště
    Ostrava - Homeless putující světem
    Příspěvky
    731
    Vliv
    276

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    mi neni jasne to zadani. to jsou ctyri body nebo co ?
    Autor tohoto příspěvku je zpráskaná LAMA. Absolvoval 6 tříd ZŠ. Proto berte obsah příspěvku s rezervou.

  8. #8

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    Citace Původně odeslal Kon Zobrazit příspěvek
    mi neni jasne to zadani. to jsou ctyri body nebo co ?
    Obrazek uz sem odmazal, neb ti co k tomu meli co rict uz rekli, naky algoritmy mam na papire, ale momentalne neni cas si s tim hrat.
    Jak bylo zmineno vyse, slo o to najit matici zobrazeni pomoci ctyr (+-) kalibracnich bodu u nich znam vzor i obraz, tak abych mohl prepocitat souradnice libovolneho bodu na nove transformovane souradnice. Zobrazeni ma zohlednit rotaci a zmenu meritka na osach, v obou soustavach sou souradnice ortogonalni.

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  9. #9
    Senior Member
    Založen
    22.07.2003
    Bydliště
    Ostrava - Homeless putující světem
    Příspěvky
    731
    Vliv
    276

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    pokud jsou soustavy ortogonální, pak nechápu proč máš 4 body
    Autor tohoto příspěvku je zpráskaná LAMA. Absolvoval 6 tříd ZŠ. Proto berte obsah příspěvku s rezervou.

  10. #10

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    Citace Původně odeslal Kon Zobrazit příspěvek
    pokud jsou soustavy ortogonální, pak nechápu proč máš 4 body
    No vsak sem psal, ze by mozna stacily 3. Ten algoritmus co sem sehnal tak bere obecne 4 a vice bodu, takze zvladne korikovat i dalsi deformace, coz se muze v budoucnu hodit...

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  11. #11
    Senior Member
    Založen
    22.07.2003
    Bydliště
    Ostrava - Homeless putující světem
    Příspěvky
    731
    Vliv
    276

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    no pokud mas univerzalni algoritmus pak jo, muze to byt zese na ukor rychlosti.
    Jinak v ortogonalnim systemu vzhledem k jinemu muze dojit k posunu, otoceni, zmene meritka takze tech bodu moc nepotrebujes ... staci ti pracovat s maticemi 2x2
    Autor tohoto příspěvku je zpráskaná LAMA. Absolvoval 6 tříd ZŠ. Proto berte obsah příspěvku s rezervou.

  12. #12

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    No tak muzes nahodit tu zjednodusenou variantu, ale asi to uz udelam rovnou poradne, o rychlost az tak nejde prepocitava se jen pri pohybu mysi nad mapou.

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  13. #13

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    Citace Původně odeslal RayeR Zobrazit příspěvek
    No tak muzes nahodit tu zjednodusenou variantu, ale asi to uz udelam rovnou poradne, o rychlost az tak nejde prepocitava se jen pri pohybu mysi nad mapou.
    Kdyz si vemem v potaz rychlost poolingu nekterych mysek, tak to muze byt i problem. Hodne Razeru/Logitechu mivaji pooling 250-1000Hz a to uz se projevi. Bys tam mel dat spis fixed timing, aby nedochazelo ke zpomaleni. Ale to jen tak na okraj...
    Black holes are where God divided by zero. - Steven Wright
    2600K s AC HF14 | P8P67Deluxe s 16GB DDR3 | GTX1080 s LP2480zx | EVO850 s ICH10R | X-Fi s HD555 | TripleXtreme 360 s HPPS+ | Windows 10 + 7

  14. #14

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    No jedna vec je jak windows rychle cte pozici z mysiportu a druha vec jak rychle se stiha vykreslovat kurzor nebo cokoliv na obrazovce, coz bude tak o rad min (vsync) jak ten 1kHz, ale i tak myslim ze to jeden vektor s matici stihne nasobit mnoohem rychleji.

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  15. #15

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    Citace Původně odeslal RayeR Zobrazit příspěvek
    No jedna vec je jak windows rychle cte pozici z mysiportu a druha vec jak rychle se stiha vykreslovat kurzor nebo cokoliv na obrazovce, coz bude tak o rad min (vsync) jak ten 1kHz, ale i tak myslim ze to jeden vektor s matici stihne nasobit mnoohem rychleji.
    U WinAPI nejde o vsync. Zpravy ti do smycky chodi na MouseMove a to je opravdu az 1000x za sekundu podle poolingu. Vykreslovani kurzoru ve 2D je taky mnohem rychlejsi nez jak si myslis, pokud tedy jde o HW kurzor, ktery dnes vyuzivaji vsechny GK, ale opravdu tady nejde jeho vykresleni, ale o pocet zprav ve smycce. Podle me bys mel lepsi, kdybys to dal na wm_paint ci neco podobneho a nechal tam navic jasny interval. Treba 1/60 sekundy.
    Black holes are where God divided by zero. - Steven Wright
    2600K s AC HF14 | P8P67Deluxe s 16GB DDR3 | GTX1080 s LP2480zx | EVO850 s ICH10R | X-Fi s HD555 | TripleXtreme 360 s HPPS+ | Windows 10 + 7

  16. #16

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    No to je stejne fuk, protoze nepisu pro winy asi sem nemel to slovo vyslovovat

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  17. #17

    Standardní Re: Algoritmus na 4-bodovou kalibraci 2D mapy?

    Citace Původně odeslal RayeR Zobrazit příspěvek
    No to je stejne fuk, protoze nepisu pro winy asi sem nemel to slovo vyslovovat
    To si nemel Jenom me to tak napadlo, ze by to zpomalovalo. Neco podobneho sem kdysi resil v nasem editoru.
    Black holes are where God divided by zero. - Steven Wright
    2600K s AC HF14 | P8P67Deluxe s 16GB DDR3 | GTX1080 s LP2480zx | EVO850 s ICH10R | X-Fi s HD555 | TripleXtreme 360 s HPPS+ | Windows 10 + 7

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •