====== CropImage ====== [[http://www.openhardsoftware.de/ | Open Hard- & Software]] [ [[http://www.openhardsoftware.de/dokuwiki | DokuWiki]] [[http://www.openhardsoftware.de/websites | WebSites]] [[http://www.openhardsoftware.de/mediawiki | MediaWiki]] [[http://www.openhardsoftware.de/nextcloud | NextCloud]] ] (Automatisches) Freistellen von Objekten in der Produktfotografie ===== 211125 : Python CropImage ===== * Version: {{:module:python:cropimage:2111252257_cropimage_01v01.zip | 2111252257_CropImage_01V01.zip }} * **X** mehrfarbige matte Kartonagen bestellt ===== 211125 : Entwicklungsschritte CropImage ===== Die folgenden Bilder wurden in der [[https://www.amazon.de/gp/product/B08TT78WFB/ref=ppx_yo_dt_b_asin_title_o07_s00?ie=UTF8&th=1 | Orthland-Fotobox]] unter 95% Beleuchtung \\ und mit einer Canon6D und Canon-Software im PC-Remote-Betrieb hergestellt. \\ \\ {{:module:python:cropimage:2111261023_fotoboxorthland.png?200| Orthland-Fotobox 40cmx40cmx40cm (Amazon)}} \\ [[https://www.amazon.de/gp/product/B08TT78WFB/ref=ppx_yo_dt_b_asin_title_o07_s00?ie=UTF8&th=1 | Orthland-Fotobox 40cmx40cmx40cm (Amazon)]] \\ \\ {{:module:python:cropimage:2111251433_kritapng.png?400|}} \\ Krita zur Nebenher-Bildverarbeitung: * Erzeugung eines numerischen Bildes, speichern in PGN-File * laden in Krita: RGB und A(!!!) sind in Krita sauber sichtbar! * laden von PNGs in einzelnen Layern * hinzufügen von Alpha-Kanälen * Export aller wichtigen Bild-Dateitypen \\ Erzeugung eines Freistell-Programms unter Python: * verwendete Bibliotheken: OpenCV * Software: Laden von Bildern * Software: Resizen auf Web-Formate * Software: Subtraktion der R-G-B-A-Kanäle von Objekt und Untergrund: * D(RGB) = abs[O(RGB) - U(RGB)] * Threshold: if (TH < D(RGB)) {A=0} else {A = 255} \\ {{:module:python:cropimage:2111251433_objecttamron.png?400|}} \\ ObjectTamron (640x480) \\ \\ {{:module:python:cropimage:2111251434_background.png?400|}} \\ Background (640x480) \\ \\ {{:module:python:cropimage:2111252210_objectcropped.png?400|}} \\ Simpler Freistell-Algorithmus, daher nur fast super, aber reicht! \\ jetzt muss ich noch einen Parameter (Triggerschwelle für Background-Erkennung) vorgeben, \\ ansonsten: * Auto-Resize der Bilder auf 1024x680pxl \\ * Auto-Freistellen durch Abzug ObjektAufWeissemHintergrund mit WeissemHintergrund \\ \\ {{:module:python:cropimage:2111252211_objectnewbackground.png?400|}} \\ Krita: Hinzufügen eines weissen Layers \\ {{:module:python:cropimage:2111252212_objectyellowbackground.png?400|}} \\ Krita: Hinzufügen eines gelben Layers -leider noch nicht vollautomatisch 😢 \\ \\ {{:module:python:cropimage:2111252212_objectsilverwhite.png?400|}} \\ Weisser Hintergrund mit Silber-Blau-Objekten: \\ * Problem: Freistell-Algorithmus unterscheidet nicht zwischen weiss und silber * mögliche Lösung: Untergrund-Farbe wählen, welche nicht in Objekten vorkommt! * daher: matte Kartonagen in verschiedenen Grundfarben bestellt ----- [[http://www.openhardsoftware.de/ | Open Hard- & Software]] [ [[http://www.openhardsoftware.de/dokuwiki | DokuWiki]] [[http://www.openhardsoftware.de/websites | WebSites]] [[http://www.openhardsoftware.de/mediawiki | MediaWiki]] [[http://www.openhardsoftware.de/nextcloud | NextCloud]] ]