Ich muss ein Bild in einem FPGA resamplen, dass vom Erzeuger in 768x256 oder 768 x 256 x 1.5 geliefert wird. Beides sind dieselbe Auflösung, nur von einem CCD mit einem seltsamen Ausleseverfahren. Wie kann ich daraus ein 320x200 Bild machen und auch ein 480x320 (jeweils unter Hinzufügen von Leerzeilen/Spalten) damit das Format passt? Ich muss das Ganze ja neu sampeln, stosse aber an das Problem, eine Menge Aliaseffekte zu sehen, weil die Relationen nicht statisch sind. Z.B. habe ich einmal eine 3:2 Abbildung aber auch eine 5:3. Jeweils an den Grenzen eines solchen 3er und 5er Blocks sieht man Stufen.
Damit es richtig schön wird, hilft es nicht nur ein paar Zeilen/Spalten wegzulassen oder zu verdoppelt. Resampling ist schon der richtige Weg. Allerdings wird es mathematisch: um eine Zeile an der Position 50.8 zu erzeugen, braucht man 0.8 * die Zeile 51 und 0.2 * die Zeile 50. Das geht dann mit Floating-Point zahlen besser. Und die Spalten spielen ja auch noch mit hinein. Ich würde erst einmal einen Algorithmus auf einem Computer in einer 'normalen' Hochsprache entwickeln. Da ist der Entwicklungszyklus schneller. Wenn der Algorithmus dann stabil läuft, dann sehen, wie ich ihn in einem FPGA realisieren könnte.
Man muss das Resampeln eben über genügend viele Pixel ausdehen, um ganzzahlig Rechnen zu können: 5:3 also mit 15 pixeln und entsprechenden Zwischenabbildungen. Beim resampeln muss man allerdings nicht zwingend mit floating point arbeiten. Genügend gut aufgelöstes fixed point ist einfacher im handling.
Eine Anregung: http://www.tu-cottbus.de/fakultaet3/de/medientechnik/forschung/lehrstuhlprofil/bildskalierer-mit-nichtlinearer-kantenanschaerfung.html
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.