Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
projekte:vector_graphics_adapter [2015/12/12 23:19] – da1l6 | projekte:vector_graphics_adapter [2024/12/30 12:17] (aktuell) – da1l6 | ||
---|---|---|---|
Zeile 7: | Zeile 7: | ||
{{ : | {{ : | ||
- | Doch der PC besitzt ja meist noch einen weiteren Digital-Analog-Wandler: | + | Doch der PC besitzt ja meist noch einen weiteren Digital-Analog-Wandler: |
Der VGA-Port kann die Bilddaten auch mit sehr hoher Geschwindigkeit (> 100MHz) ausgeben, davon kann man bei Soundkarten nur träumen. Auch stöhrende Ausgangsfilter gibt es nicht. Damit ist er fast ideal für komplexe Vektor-Darstellungen geeignet. | Der VGA-Port kann die Bilddaten auch mit sehr hoher Geschwindigkeit (> 100MHz) ausgeben, davon kann man bei Soundkarten nur träumen. Auch stöhrende Ausgangsfilter gibt es nicht. Damit ist er fast ideal für komplexe Vektor-Darstellungen geeignet. | ||
Zeile 16: | Zeile 16: | ||
==== Funktionsprinzip / Software ==== | ==== Funktionsprinzip / Software ==== | ||
- | * Die Vektorisierung ist als [[https:// | + | * Die Vektorisierung ist als [[https:// |
* Das Video (oder Bild) wird mittels [[https:// | * Das Video (oder Bild) wird mittels [[https:// | ||
- | | + | |
- | * Alternativ kann der edgedetect Filter aus ffmpeg/ | + | |
* Anschließend wird ein weiterer Videofilter nachgeschaltet, | * Anschließend wird ein weiterer Videofilter nachgeschaltet, | ||
* Dieser Filter basiert auf dem OpenCV FindContours funktion, welche die Kanten als Vektor-Pfad extrahiert. | * Dieser Filter basiert auf dem OpenCV FindContours funktion, welche die Kanten als Vektor-Pfad extrahiert. | ||
- | * Der Vektorpfad wird anschließend als " | + | * Der Vektorpfad wird anschließend als " |
* Der ffmpeg edgedetect Filter liefert einen Intensitätswert, | * Der ffmpeg edgedetect Filter liefert einen Intensitätswert, | ||
- | * Bei der Umsetzung in das Vektorbild wird dies berücksichtigt indem der Anteil an der koordinaten | + | * Bei der Umsetzung in das Vektorbild wird dies berücksichtigt indem der Anteil an der Koordinaten |
* Je kleiner der Anteil desto schneller überstreicht der Elektronenstrahl die Kante und desto dunkler erscheint Sie. | * Je kleiner der Anteil desto schneller überstreicht der Elektronenstrahl die Kante und desto dunkler erscheint Sie. | ||
- | * Damit ist möglich die Helligkeit auch ohne Z-Eingang verändern. | + | * Damit ist es möglich die Helligkeit auch ohne Z-Eingang verändern. |
- | * In der unteren linken Ecke (0,0) erscheint ein heller Punkt, dies ist Folge der Austastlücken (" | + | * In der unteren linken Ecke (0,0) erscheint ein heller Punkt, dies ist eine Folge der Austastlücken (" |
* Um den Phosphor des Oszilloskop zu schonen sollte dieser außerhalb des sichtbaren Bereiches der Röhre bewegt werden. | * Um den Phosphor des Oszilloskop zu schonen sollte dieser außerhalb des sichtbaren Bereiches der Röhre bewegt werden. | ||
* Beispiel " | * Beispiel " | ||
Zeile 35: | Zeile 34: | ||
xrandr --addmode VGA1 scope | xrandr --addmode VGA1 scope | ||
xrandr --output VGA1 --mode scope --right-of < | xrandr --output VGA1 --mode scope --right-of < | ||
- | * ffmpeg | + | * ffmpeg |
- | * opencv | + | * opencv3 |
- | * Modifizierter mpv media player: '' | + | * Modifizierter mpv media player: '' |
* Beispielaufruf: | * Beispielaufruf: | ||
- | * Mit ffmpeg Kantenerkennung: | + | * < |
- | * Mit openCV Kantenerkennung:< | + | * Die optimalen werte für low und high können je nach Material variieren. Einfach ausprobieren. |
- | * Die optimalen werte für t1 (bzw. low) und t2 (bzw. high) können je nach Material variieren. Einfach ausprobieren. | + | |
* Der Canny-Algorithmus ist sehr Rechenintensiv, | * Der Canny-Algorithmus ist sehr Rechenintensiv, | ||
Zeile 56: | Zeile 54: | ||
< | < | ||
+ | |||
+ | ==== Screen Capture ==== | ||
+ | {{ : | ||
+ | |||
+ | Das funktioniert prinzipiell sowohl im Raster als auch im reinen Vektorgrafikmodus. Das bild Rechts ist mit dem Rastergrafik modus entstanden. | ||
+ | |||
+ | < | ||
+ | |||
+ | Video Eingänge wie TV-Karten oder Webcams lassen sich auch abgreifen: | ||
+ | < | ||
+ | |||
+ | ===== Digitaloszilloskop ===== | ||
+ | |||
+ | Wer kein analoges Oszilloskop sein eigen nennt kann auch ein modernes digitales Oszilloskop verwenden, allerdings sind die Darstellungsergebnisse deutlich schlechter. Insbesondere der Rastergrafik-Modus ist kaum zu verwenden. | ||
+ | |||
+ | Die Ursache liegt darin, dass digitale Oszilloskope periodisch das Eingangssignal abtasten und dann an der zu den gemessenen Spannungen passenden Stelle einen Punkt zeichnen, welcher aber immer die selbe Helligkeit hat. Da das Abtasten nicht synchron zum Pixeltakt des VGA-Ports ist, werden auch viele Zwischenwerte im Übergang zwischen zwei Pixeln gemessen. Dies führt zu starkem " | ||
+ | |||
+ | {{: | ||
+ | {{: | ||
+ | |||
+ | === DSO Tipps: === | ||
+ | * Eine hohe Bildwiederhohlrate einstellen (z.B. 120Hz) um den Pixeltakt zu erhöhen und damit die Zeit " | ||
+ | * Ein möglichst breites Seitenverhältniss verwenden um wenig H-Blanks zu haben (ist immer gut). | ||
+ | * Geringe Speichertiefe einstellen (e.g. ~7kPoints). | ||
+ | * Mit der Samplerate rumspielen bis so wenig " | ||
+ | |||
+ | ===== Unsere anderen VGA-zu-Oszilloskop Projekte ===== | ||
+ | * [[https:// |