projekte:vector_graphics_adapter

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projekte:vector_graphics_adapter [2017/03/01 19:19] – Externe Bearbeitung 127.0.0.1projekte:vector_graphics_adapter [2024/12/30 12:17] (aktuell) da1l6
Zeile 16: Zeile 16:
  
 ==== Funktionsprinzip / Software ==== ==== Funktionsprinzip / Software ====
-  * Die Vektorisierung ist als [[https://mpv.io/|mpv]] video filter implementiert.+  * Die Vektorisierung ist als [[https://mpv.io/|mpv]] video filter in einem [https://gitlab.warpzone.ms/da1l6/vga|Fork] implementiert.
   * Das Video (oder Bild) wird mittels [[https://de.wikipedia.org/wiki/Canny-Algorithmus|Canny Kantenerkennung]] in ein Kantenbild umgerechnet.    * Das Video (oder Bild) wird mittels [[https://de.wikipedia.org/wiki/Canny-Algorithmus|Canny Kantenerkennung]] in ein Kantenbild umgerechnet. 
-    * Dazu habe ich in einen [[https://github.com/da1l6/mpv|mpv fork]] den [[http://opencv.org/|OpenCV]]-Canny Algorithmus als Video Filter eingebaut (-vf canny) +  * Dazu wird der edgedetect Filter aus ffmpeg/libavfilter verwendet (-vf lavfi=edgedetect)
-    * Alternativ kann der edgedetect Filter aus ffmpeg/libavfilter verwendet werden (-vf lavfi=edgedetect)+
   * Anschließend wird ein weiterer Videofilter nachgeschaltet, welcher das Kantenbild in eine Vektorfolge umrechnet. (-vf vector).    * Anschließend wird ein weiterer Videofilter nachgeschaltet, welcher das Kantenbild in eine Vektorfolge umrechnet. (-vf vector). 
     * 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.
Zeile 35: Zeile 34:
 xrandr --addmode VGA1 scope xrandr --addmode VGA1 scope
 xrandr --output VGA1 --mode scope --right-of <HAUPTBILDSCHIRM></code> xrandr --output VGA1 --mode scope --right-of <HAUPTBILDSCHIRM></code>
-  * ffmpeg (libav besitzt den edgedetect filter nicht) +  * ffmpeg 
-  * opencv +  * opencv3 
-  * Modifizierter mpv media player: ''git clone https://github.com/da1l6/mpv''+  * Modifizierter mpv media player: ''git clone https://gitlab.warpzone.ms/da1l6/vga.git''
   * Beispielaufruf:   * Beispielaufruf:
-    * Mit ffmpeg Kantenerkennung:<code>/pfad/zu/build/mpv --fs --geometry=<BREITE-HAUPTBILDSCHIRM>:0 --loop --vf scale=576:512,lavfi=[edgedetect=high=0.04:low=0.03],vector:width=2048:height=200 <VIDEO></code> +    * <code>/pfad/zu/build/mpv --fs --geometry=<BREITE-HAUPTBILDSCHIRM>:0 --loop --vf scale=576:512,lavfi=[edgedetect=high=0.04:low=0.03],vector:width=2048:height=200 <VIDEO></code> 
-    * Mit openCV Kantenerkennung:<code>/pfad/zu/build/mpv --fs --geometry=<BREITE-HAUPTBILDSCHIRM>:0 --loop --vf scale=576:512,canny:t1=128:t2=130,vector:width=2048:height=200 <VIDEO></code> +    * Die optimalen werte für low und high können je nach Material variieren. Einfach ausprobieren.
-    * Die optimalen werte für t1 (bzw. lowund t2 (bzw. highkönnen je nach Material variieren. Einfach ausprobieren.+
     * Der Canny-Algorithmus ist sehr Rechenintensiv, deshalb wird das Bild zuerst mit ''--vf scale:w:h'' herunterskaliert.     * Der Canny-Algorithmus ist sehr Rechenintensiv, deshalb wird das Bild zuerst mit ''--vf scale:w:h'' herunterskaliert.
  
  • projekte/vector_graphics_adapter.1488395997.txt.gz
  • Zuletzt geändert: 2017/03/01 19:19
  • von 127.0.0.1