softwaretechnologie für fortgeschrittene teil thaller stunde iv: bildverarbeitung iv köln 15....
TRANSCRIPT
![Page 1: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/1.jpg)
Softwaretechnologie für FortgeschritteneTeil Thaller
Stunde IV: Bildverarbeitung IV
Köln 15. Januar 2015
![Page 2: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/2.jpg)
Transformationen des Fourier Typs
2
Prinzip:
Die Zuordnung von Helligkeitswerten zu Punkten wird durch eine andere geometrisch / mathematische Interpretation derselben numerischen Werte ersetzt.
Fourier: Die räumliche Verteilung von Helligkeitswerten kann durch eine Bündelung von Frequenzwerten ersetzt werden.
![Page 3: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/3.jpg)
Transformationen des Fourier Typs
3
Beispielsweise ist leicht nachvollziehbar, dass im Bild
jede Zeile des Bildes auch als eine „Schwingung“ verstanden werden kann, deren „hohe“ Amplitude besonders „hell“, deren
„niedrige“ besonders „dunkel“ ist.
![Page 4: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/4.jpg)
Transformationen des Fourier Typs
4
Wenn dies so ist, kann dieses Bild offensichtlich durch Angabe der Schwingungsdauer und der Amplitude dargestellt werden.
Wird dies weitergedacht, kann man konzeptuell jeden Punkt eines Punktes dadurch beschreiben, dass man behauptet, das Bild von n x m Pixeln stelle n x m Schwingungen dar, von denen jede an genau einem der Pixel jene Ausprägung der Amplitude habe, die dem Helligkeitswert dieses Pixels entspräche.
![Page 5: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/5.jpg)
Transformationen des Fourier Typs
5
Fouriertransformationen sind relativ anspruchsvoll effektiv zu optimieren; werden deshalb NICHT im Quellcode besprochen. Sie sind aber EXTREM wichtig.
Wichtig ist, folgende Eigenschaften festzuhalten:
![Page 6: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/6.jpg)
Transformationen des Fourier Typs
6
(1) Fouriertransformationen sind voll umkehrbar:
![Page 7: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/7.jpg)
Transformationen des Fourier Typs
7
(2) Transformierte Bilder können zielgerichtet bearbeitet werden:
![Page 8: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/8.jpg)
Transformationen des Fourier Typs
8
(2) Transformierte Bilder bestehen üblicherweise aus überwiegend sehr viel kleineren Zahlenwerten:
![Page 9: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/9.jpg)
II. Bildspeicherung und Kompression
9
Techniken zum Transfer von Bytestreams aus der linearen Form (Platte) in strukturierte Form (Memory).
![Page 10: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/10.jpg)
Binäres Lesen (Qt flavour)
10
„Lesen“
imageFile.seek(ifd_addr);imageFile.read((char *)buffer,n);
„Schreiben“imageFile.seek(ifd_addr);imageFile.write((char *)buffer,n);
„Position merken“ifdstart = imageFile.pos();
![Page 11: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/11.jpg)
Bildformate: TIFF
11
![Page 12: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/12.jpg)
Bildformate: TIFF
12
![Page 13: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/13.jpg)
Bildformate: TIFF
13
![Page 14: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/14.jpg)
Komprimieren
14
Run Length Encoding
while(line > 0) { c = *(source)++; if (c < 0) { count = c * -1 + 1; memset(target, *source, count); source++; } else { count = c + 1; memcpy(target, source, count); source += count; } line -= count; target += count; }
![Page 15: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/15.jpg)
Komprimieren
15
CCITT / Huffmann Encoding (bitonal) 1 / 3
while(gotten<header->width) { if ((runlength=TIfetchrun(&ccitt,buffer,0,&err))<0) goto cleanup; memset(target,usecolor[0],runlength); target+=runlength; gotten+=runlength; if (gotten>=header->width) break; if ((runlength=TIfetchrun(&ccitt,buffer,1,&err))<0) goto cleanup; memset(target,usecolor[1],runlength); target+=runlength; gotten+=runlength; }
![Page 16: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/16.jpg)
Komprimieren
16
CCITT / Huffmann Encoding (bitonal) 2 / 3
![Page 17: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/17.jpg)
Komprimieren
17
CCITT / Huffmann Encoding (bitonal) 3 / 3
![Page 18: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/18.jpg)
Komprimieren
18
Lempel-Ziv & Welch (LZW) 1 / 2
InitializeStringTable();WriteCode(ClearCode);W = the empty string;for each character in the strip { K = GetNextCharacter(); if W+K is in the string table { W = W+K; /* string concatenation */ } else { WriteCode (CodeFromString(W)); AddTableEntry(W+K); W = K; }}WriteCode (CodeFromString(W));WriteCode (EndOfInformation);
![Page 19: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/19.jpg)
Komprimieren
19
Lempel-Ziv & Welch (LZW) 2 / 2
static int shifts[4][8] = { 7, 6, 5, 4, 3, 2, 1, 0, 14, 13, 12, 11, 10, 9, 8, 7, 13, 12, 11, 10, 9, 8, 7, 6, 12, 11, 10, 9, 8, 7, 6, 5 };int raw, use;
use = lzw->lzwbits >> 3;if (use >=max) return TiffLZWEOI;raw = (raster[use] << 8) + (raster[use + 1]);if (lzw->lzwcs>9) raw= (raw<<8) + (raster[use + 2]);raw >>= shifts[lzw->lzwcs-9][lzw->lzwbits % 8];lzw->lzwbits += lzw->lzwcs;
return (raw&lzw->lzwmask);
![Page 20: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/20.jpg)
Komprimieren
20
JPEG
Sechs Schritte zum s/w JPEG Image1.In Blöcke gruppieren; Zentrieren um Null.2.DCT jedes Blocks.3.Elimieren einiger Werte durch "quantization".4.8 x 8 Blöcke lineare Sequenz, per Entropy Encoding.5.Run length encoding.6.Huffman encoding.
Vor diesen Schritten im 24 Bit Fall: Transformation RGB YCbCr.
![Page 21: Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015](https://reader036.vdokument.com/reader036/viewer/2022081512/55204d8649795902118d99b0/html5/thumbnails/21.jpg)
Danke für heute!
21