[Imaging] Mate van verschuiving berekenen*

Pagina: 1
Acties:

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 23:49
Ik hoop dat dit het juiste forum hiervoor is.

Ik wil graag de nauwkeurigheid van m'n printer (en scanner) meten. Hiervoor heb ik een paar dikke stippen op papier uitgeprint en vervolgens dat blaadje op de scanner gelegd.
Vervolgens ga ik de positie van de stippen herkennen en de afwijking meten.

Ik zit echter nog met 1 probleem. De positie van het blaadje op de scanner.
Afbeeldingslocatie: http://img338.imageshack.us/img338/2862/a4fq7.png
De linker A4 is wat uit de printer komt. De middelste wat ik heb gescant. En de rechter is het resultaat als ik ze over elkaar heen leg.

Ik heb te maken met een verplaatsing in X en Y positie. En ik heb nog een (kleine) verdraaiing van het A4-tje.

De dotjes lokaliseren werkt redelijk, alleen is het vergelijken een probleem.
Ik heb al geprobeerd om m.b.v. het rekenkundig gemiddelde de positie te bepalen, en daarna de rotatie. Echter, als mijn stukje software een dotje verkeerd berekent of helemaal niet ziet (door een slechte scan bijvoorbeeld), verschuift het middelpunt. Dan krijg ik dat hij bij de andere dots een grote afwijking geeft.
Ook heb ik dat geprobeerd met het meetkundig gemiddelde, maar dat is ook geen succes. Hoe groter het getal, des te minder invloed het heeft op het gemiddelde.

Heeft iemand ervaring met het over elkaar heen leggen en roteren van de afbeelding ? Of heeft iemand tips wat ik kan uitproberen ?

Speel ook Balls Connect en Repeat


  • 4VAlien
  • Registratie: November 2000
  • Laatst online: 16:07

4VAlien

Intarweb!

stap 1: bepaal een cut-off : er moet een afstand zijn waarbinnen de 'rode' stip van een bijbehorende zwarte stip ligt. Als je dit niet kan vinden, dan moet je die ene stip zonder partner niet meenemen.

stap2:
Tussen twee willekeurige stippen kan je een vector bepalen, idem voor de bijbehorende partner stippen.

v: vector (v1,v2)
w: vector (w1,w2)
inproduct (v,w) = v1*w1 + v2*w2
lengte (v) = wortel(v1^2 + v2^2)

nu geldt:

inproduct (v,w) = lengte(v) * lengte(w) * cos (h)

Gegeven de vectoren kun je hiermee dus de hoek uitrekenen.

[ Voor 37% gewijzigd door 4VAlien op 02-08-2006 15:39 ]


  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 23:49
Bij stap 1 gaat het mij er meer om hoe ik het midden kan uitrekenen.
Ik heb altijd wel een afwijking bij een of meerdere stippen.
Maar het gaat mij er om om het midden zo uit te rekenen dat voor elke stip de afwijking minimaal is.

Voor het 2e gedeelte had ik ook al zoiets, maar toen kwam ik er achter dat als het middenpunt iets opgeschoven was, er betere resultaten waren.
Maar ik kan niet onbeperkt aantal keer het midden bepalen en dan een rotatie toepassen.

Speel ook Balls Connect en Repeat


  • 4VAlien
  • Registratie: November 2000
  • Laatst online: 16:07

4VAlien

Intarweb!

Als je eenmaal het groepje pixels hebt dan kan je toch wel de meest extreme pixels vinden: Oftewel de meest linker coordinaat, de meest rechter coordinaat en onder/boven. Dan kan je daar gewoon tussen middelen. Je cirkels hoeven ook niet per se superrond te zijn voor dit om te werken, want als beide stippen een afwijking hebben dan zal je nog steeds hetzelfde middelpunt bepalen ?

edit: hmmz weer niet helemaal goed gelezen .. Aangezien je altijd afwkijkingen hebt kan je dan niet beter stippen weggooien waarvan de grootte het minst overeenkomt? Gewoon de 5 paren houden die qua aantal pixels het meest overeenkomen? En dan tussen verschillende stippenparen telkens de hoek uitrekenen?

[ Voor 28% gewijzigd door 4VAlien op 02-08-2006 16:05 ]


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-12-2025
Google termen: motion vector estimation. Dit is vergelijkbaar met het proces wat bijvoorbeeld MPEG- gebruikt om de verschillen tussen twee videoframes te berekenen.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein