Grauwerte oder Pixelposition

OP (Firma: Mann) #1783598
Lesenswert?
• ▲
▼
hallo,

ich versuche zwei Kameras anzupassen mit einer 
Kalibration(Kalibrierung). Ich arbeite mit FPGA und ich  frage mich wie 
sollte ich eine Matrix Multiplikation da rechnen.

In meinem Modul ich kann nur auf RGB Werte jedes Pixels zugreifen und 
ich habe die folgende Gleichung gefunden: des(x,y) = M x src(x,y). M st 
die Kalibrattionsmatrix aber was ist des(x,y) und srx(x,y)? Grauwerte 
oder pixelposition?



hat man eine Idee?
OP (Firma: Mann) #1783886
Lesenswert?
• ▲
▼
danke für die Anwort. Nun wollte ich noch mal wissen, ich habe den 
Grauwert eines bildpixels. Ich habe die Kalibration matrix 3x3 (mit open 
cv berechnet), wie soll ich den neuen Pixelwert rechnen?

des(x,y) = 234 x (a,b,c; d,e,f; g,h,i)
des(x,y) -> neuer Grauwert an pos x,y
234 -> alte Grauwert an pos x,y
(a,b,c; d,e,f; g,h,i) entspriht Kalibrationmatrix.

wie soll das gehen?  oder gibt es eine andere Möglichkeit es zu rechnen?
Gast #1785000
Lesenswert?
• ▲
▼
Es könnte auch durchaus sein, dass man vom Ausgabebild (des) 
zurückrechnet in das Eingabebild (src), dort den entsprechenden Grauwert 
holt und ins Ausgabebild schreibt (also "src" und "des" in der Gleichung 
vertauschen). Weiß jetzt selbst nicht mehr so genau wie das gemacht 
wird. Ist schon ein Weilchen her, dass ich mich damit zuletzt 
beschäftigt habe.
Gast #1790201
Lesenswert?
• ▲
▼
Ich glaube, Du vermischst da was. Grauwerte gelten ja immer für eine 
Farbe, die Korrekturmatrix gilt für alle drei Farben. Die muss also auf 
drei Grauwerte angewendet werden und ergibt dann drei auch Ergebnisse.
#1790317
Lesenswert?
• ▲
▼
Doch, schon. Die Multiplikation der source-Grauwerte mit der 
Korrekturmatrix muss für jedes einzelne Pixes des Bildes durchgeführt 
werden. Also wenn Du das im FPGA machen willst, dann musst du

- die 3 Grauwerte der Farben aus dem Speicher holen
- die 9 Multiplikationen mit den Matrizenelementen durchführen, am 
besten mit 9 parallel arbeitenden Multiplizierern mit nachgeschalteten 
Summierern
- die 3 Ergebniss-Grauwerte wieder in den Speicher schreiben, an 
gleicher oder anderer Stelle

und das ganze eben durch den ganzen Framebuffer des Bildes. Was Du noch 
nicht gesagt hast, ist ob es nur eine Korrekturmatrix für die ganze 
Kamera gibt oder eine pro Pixel. Das würde die Sache etwas 
verkomplizieren und vor allem mehr Speicherbandbreite erfordern, wäre 
aber auch lösbar.
Möglicherweise kannst du die Korrektur auch machen, bevor das Bild im 
Speicher ist. Wenn das nicht-korrigierte Bild erst gar nicht im Speicher 
steht, muss man es auch nicht erst auslesen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren