{"id":462,"date":"2022-09-26T05:40:41","date_gmt":"2022-09-26T05:40:41","guid":{"rendered":"https:\/\/christoph-schmalfuss.de\/blog\/?p=462"},"modified":"2022-10-01T06:54:44","modified_gmt":"2022-10-01T06:54:44","slug":"python-bilderkennung-fuer-einfache-automatisierung-nutzen","status":"publish","type":"post","link":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/","title":{"rendered":"Python: Elemente am Aussehen erkennen &#8211; Einfache Automatisierung mit PyAutoGUI"},"content":{"rendered":"\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/youtu.be\/euWoYvse61Q\n<\/div><\/figure>\n\n\n\n<p>Im letzten Video haben wir uns angeschaut, wie wir Buttons anhand ihrer Koordinaten klicken k\u00f6nnen. Das ist an sich ziemlich geil, funktioniert aber eben leider auch nur, wenn der Button immer an der selben Position ist. Und genau dieses Problem l\u00f6sen wir jetzt. Los geht&#8217;s!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vorbereitung<\/h2>\n\n\n\n<p>Wir werden jetzt ein Skript schreiben, das anhand eines Screenshots ein bestimmtes Element auf dem Bildschirm erkennt und anschlie\u00dfend klickt. Und das beste ist: Diese Methode funktioniert nicht nur im Browser, sondern in allen Programmen. <\/p>\n\n\n\n<p>Wir m\u00fcssen vorab zwei Paket installieren. Das erste ist PyAutoGUI:<\/p>\n\n\n\n<p><code>pip install pyautogui<\/code><\/p>\n\n\n\n<p>Das k\u00f6nnen wir jetzt zum Steuern von Maus und Tastatur nutzen.<\/p>\n\n\n\n<p>Und das zweite ist:<\/p>\n\n\n\n<p><code>pip install opencv-python<\/code>.<\/p>\n\n\n\n<p>Das ist einfach gesagt eine Sammlung von Algorithmen zur Bildverarbeitung, die sp\u00e4ter nochmal wichtig sein wird. <\/p>\n\n\n\n<p>Und dann sind wir auch schon startklar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Python das Aussehen des Buttons beibringen<\/h2>\n\n\n\n<p>Damit unser Skript wei\u00df, wie unser Button aussieht, machen wir als allererstes einen Screenshot davon. Wir nutzen heute hier wieder https:\/\/theuselessbutton.com und versuchen einfach, auf diesen gr\u00fcnen Button zu klicken.<\/p>\n\n\n\n<p>Einen Screenshot macht man bei MacOS am besten \u00fcber die Tastenkombination <code>command<\/code> + <code>shift<\/code> + <code>4<\/code>. Wenn ihr auf Windows seid, dann k\u00f6nnt ihr einfach z.B. das vorinstallierte Programm Snipping Tool verwenden. Wichtig ist, dass wir nur einen Screenshot vom Button machen und nicht vom ganzen Bildschirm. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"318\" height=\"174\" src=\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2022\/09\/Bildschirmfoto-2022-09-26-um-19.58.47.png\" alt=\"\" class=\"wp-image-476\" srcset=\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2022\/09\/Bildschirmfoto-2022-09-26-um-19.58.47.png 318w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2022\/09\/Bildschirmfoto-2022-09-26-um-19.58.47-300x164.png 300w\" sizes=\"auto, (max-width: 318px) 100vw, 318px\" \/><\/figure>\n\n\n\n<p>Mein Screenshot sieht jetzt ganz nett aus und den leg ich mir gleich mal in genau dem Ordner ab, wo mein Python-Script liegt. Sinnvoll ist es hier auch, gleich einen eindeutigen Namen zu vergeben, in meinem Fall also z.B. <code>button.png<\/code>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Button suchen lassen<\/h2>\n\n\n\n<p>Als n\u00e4chstes legen wir uns eine Funktion an, die unser Skript beauftragt, nach dem Button zu suchen.<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>def click_button(image):\n    while True:\n        position = locateCenterOnScreen(image, confidence=0.90)\n        \n        if position:\n            break<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Klick ausl\u00f6sen<\/h2>\n\n\n\n<p>Sobald der Button gefunden wurde, soll er logischerweise noch gedr\u00fcckt werden. Dazu schnappen wir uns als erstes mal die X und die Y Koordinate. Und mit diesen Koordinaten l\u00f6sen wir dann den Klick aus.<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>x, y = position\nclick(x, y)    <\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Funktion aufrufen<\/h2>\n\n\n\n<p>Okay, allerh\u00f6chste Zeit, dass wir unsere Funktion ausl\u00f6sen. Daf\u00fcr schreiben wir kurz auf, wo das Bild zu finden ist und \u00fcbergeben das Bild dann der Funktion.<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>image = &#39;button.png&#39; \nclick_button(image)<\/code><\/pre><\/div>\n\n\n\n<p>An der Stelle sollte jetzt zumindest der Klick schon funktionieren. Probieren wir&#8217;s aus!<\/p>\n\n\n\n<p>Wenn ihr Gl\u00fcck habt, dann funktioniert das Skript bei euch jetzt sogar schon wie gew\u00fcnscht. Gerade bei Macs und modernen Windows-Laptops kann es aber passieren, dass euer Skript vorbeiklickt. Das kriegt man aber auch schnell gel\u00f6st, also Zeit f\u00fcr etwas Debugging.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Probleme mit dem Scaling l\u00f6sen<\/h2>\n\n\n\n<p>Der Grund f\u00fcr das Problem ist Scaling. Wenn ihr z.B. einen MacBook mit Retina Display habt, dann entspricht die Anzahl der Pixel nicht der tats\u00e4chlichen Gr\u00f6\u00dfe des Displays. Das ist zum Beispiel dann der Fall, wenn pro Pixel, den ihr seht, eigentlich mehrere Pixel dargestellt werden, damit das Bild noch sch\u00e4rfer wird.<\/p>\n\n\n\n<p>Und diesen Faktor, in meinem Fall jetzt 0.5, bauen wir jetzt in das Skript ein. Den Faktor notier ich mir gleich mal in einer Variable und \u00fcbergebe die Variable an meine Funktion.<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>scaling = 0.5     \nimage = &#39;button.png&#39; \nclick_button(image, scaling)<\/code><\/pre><\/div>\n\n\n\n<p>In der Funktion nehmen wir unsere X- und Y-Koordinaten einfach mal dem Scaling Faktor.<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>    x, y = position\n    x *= scaling \n    y *= scaling<\/code><\/pre><\/div>\n\n\n\n<p>Und das w\u00e4r&#8217;s auch schon &#8211; nun sollte alles funktionieren.<\/p>\n\n\n\n<p>Okay, das soll&#8217;s erstmal f\u00fcr heute gewesen sein. Wenn ihr meine Arbeit unterst\u00fctzen wollt, dann macht einfach den \u00fcblichen Schnickschnack, also lasst ein Abo da, liked das Video oder schreibt einen freundlichen Kommentar f\u00fcr den lieben YouTube-Algorithmus. <\/p>\n\n\n\n<p>Und solltet ihr sonst noch Fragen haben, schmei\u00dft sie einfach in die Kommentare. Ich versuche eure Fragen dann mit passenden Tutorials zu beantworten. <\/p>\n\n\n\n<p>Und letzter ein Punkt: \u00dcberlegt euch au\u00dferdem gern mal, ob ihr mich per Paypal oder Patreon unterst\u00fctzen k\u00f6nnt. Das h\u00e4lt dieses Angebot am Leben und erm\u00f6glicht mir es, mehr Zeit in diesen Kanal zu investieren. <\/p>\n\n\n\n<p>Ein erster Patreon ist schon dabei, bei dir bedanke ich mich hier schon mal ganz herzlich.<\/p>\n\n\n\n<p>Ansonsten w\u00fcnsch ich euch allen noch eine wundersch\u00f6ne Woche, bleibt neugierig und bis bald.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 Kompletter Quellcode<\/h2>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>from pyautogui import locateCenterOnScreen, click\n\n\ndef click_button(image, scaling):\n    while True:\n        position = locateCenterOnScreen(image, confidence=0.90)\n        \n        if position:\n            break\n        \n    x, y = position\n    x *= scaling \n    y *= scaling\n\n    click(x, y)        \n    return \n\n\nscaling = 0.5     \nimage = &#39;button.png&#39; \nclick_button(image, scaling)\n<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Im letzten Video haben wir uns angeschaut, wie wir Buttons anhand ihrer Koordinaten klicken k\u00f6nnen. Das ist an sich ziemlich&hellip;<\/p>\n","protected":false},"author":1,"featured_media":467,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-462","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bots-und-automatisierung"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Python: Elemente am Aussehen erkennen - Einfache Automatisierung mit PyAutoGUI &mdash; Programmieren mit Chris<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python: Elemente am Aussehen erkennen - Einfache Automatisierung mit PyAutoGUI &mdash; Programmieren mit Chris\" \/>\n<meta property=\"og:description\" content=\"Im letzten Video haben wir uns angeschaut, wie wir Buttons anhand ihrer Koordinaten klicken k\u00f6nnen. Das ist an sich ziemlich&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/\" \/>\n<meta property=\"og:site_name\" content=\"Programmieren mit Chris\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-26T05:40:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-10-01T06:54:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2022\/09\/Thumbnail-Bilderkennung.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@chrischmayt\" \/>\n<meta name=\"twitter:site\" content=\"@chrischmayt\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"chris\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#organization\",\"name\":\"Programmieren mit Chris\",\"url\":\"https:\/\/christoph-schmalfuss.de\/blog\/\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/christoph-schmalfu\\u00df-52a93b209\/\",\"https:\/\/www.youtube.com\/channel\/UC0faHRYVxDn7chW573SSh8A\",\"https:\/\/twitter.com\/chrischmayt\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#logo\",\"inLanguage\":\"de\",\"url\":\"http:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2021\/08\/programmieren-mit-chris-logo-ohne-schatten-3000x3000-transparent.png\",\"contentUrl\":\"http:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2021\/08\/programmieren-mit-chris-logo-ohne-schatten-3000x3000-transparent.png\",\"width\":3000,\"height\":3000,\"caption\":\"Programmieren mit Chris\"},\"image\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#website\",\"url\":\"https:\/\/christoph-schmalfuss.de\/blog\/\",\"name\":\"Programmieren lernen mit Chris\",\"description\":\"Tutorials | Vlogs\",\"publisher\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/christoph-schmalfuss.de\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#primaryimage\",\"inLanguage\":\"de\",\"url\":\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2022\/09\/Thumbnail-Bilderkennung.png\",\"contentUrl\":\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2022\/09\/Thumbnail-Bilderkennung.png\",\"width\":1920,\"height\":1080},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#webpage\",\"url\":\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/\",\"name\":\"Python: Elemente am Aussehen erkennen - Einfache Automatisierung mit PyAutoGUI &mdash; Programmieren mit Chris\",\"isPartOf\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#primaryimage\"},\"datePublished\":\"2022-09-26T05:40:41+00:00\",\"dateModified\":\"2022-10-01T06:54:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/christoph-schmalfuss.de\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python: Elemente am Aussehen erkennen &#8211; Einfache Automatisierung mit PyAutoGUI\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#webpage\"},\"author\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#\/schema\/person\/b64d7415ba9ac63f395509d7097012bb\"},\"headline\":\"Python: Elemente am Aussehen erkennen &#8211; Einfache Automatisierung mit PyAutoGUI\",\"datePublished\":\"2022-09-26T05:40:41+00:00\",\"dateModified\":\"2022-10-01T06:54:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#webpage\"},\"wordCount\":679,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2022\/09\/Thumbnail-Bilderkennung.png\",\"articleSection\":[\"Bots und Automatisierung\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#\/schema\/person\/b64d7415ba9ac63f395509d7097012bb\",\"name\":\"chris\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/176e906a49456dda30761449564e6e69d6b070f731880e6ace0d8e2d1746f1b6?s=96&d=retro&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/176e906a49456dda30761449564e6e69d6b070f731880e6ace0d8e2d1746f1b6?s=96&d=retro&r=g\",\"caption\":\"chris\"},\"sameAs\":[\"http:\/\/christoph-schmalfuss.de\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python: Elemente am Aussehen erkennen - Einfache Automatisierung mit PyAutoGUI &mdash; Programmieren mit Chris","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/","og_locale":"de_DE","og_type":"article","og_title":"Python: Elemente am Aussehen erkennen - Einfache Automatisierung mit PyAutoGUI &mdash; Programmieren mit Chris","og_description":"Im letzten Video haben wir uns angeschaut, wie wir Buttons anhand ihrer Koordinaten klicken k\u00f6nnen. Das ist an sich ziemlich&hellip;","og_url":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/","og_site_name":"Programmieren mit Chris","article_published_time":"2022-09-26T05:40:41+00:00","article_modified_time":"2022-10-01T06:54:44+00:00","og_image":[{"width":1920,"height":1080,"filesize":750916,"url":"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2022\/09\/Thumbnail-Bilderkennung.png","path":"\/var\/www\/virtual\/schmalin\/html\/blog\/wp-content\/uploads\/2022\/09\/Thumbnail-Bilderkennung.png","size":"full","id":467,"alt":"","pixels":2073600,"type":"image\/png"}],"twitter_card":"summary_large_image","twitter_creator":"@chrischmayt","twitter_site":"@chrischmayt","twitter_misc":{"Verfasst von":"chris","Gesch\u00e4tzte Lesezeit":"4\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/christoph-schmalfuss.de\/blog\/#organization","name":"Programmieren mit Chris","url":"https:\/\/christoph-schmalfuss.de\/blog\/","sameAs":["https:\/\/www.linkedin.com\/in\/christoph-schmalfu\u00df-52a93b209\/","https:\/\/www.youtube.com\/channel\/UC0faHRYVxDn7chW573SSh8A","https:\/\/twitter.com\/chrischmayt"],"logo":{"@type":"ImageObject","@id":"https:\/\/christoph-schmalfuss.de\/blog\/#logo","inLanguage":"de","url":"http:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2021\/08\/programmieren-mit-chris-logo-ohne-schatten-3000x3000-transparent.png","contentUrl":"http:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2021\/08\/programmieren-mit-chris-logo-ohne-schatten-3000x3000-transparent.png","width":3000,"height":3000,"caption":"Programmieren mit Chris"},"image":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/#logo"}},{"@type":"WebSite","@id":"https:\/\/christoph-schmalfuss.de\/blog\/#website","url":"https:\/\/christoph-schmalfuss.de\/blog\/","name":"Programmieren lernen mit Chris","description":"Tutorials | Vlogs","publisher":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/christoph-schmalfuss.de\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"ImageObject","@id":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#primaryimage","inLanguage":"de","url":"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2022\/09\/Thumbnail-Bilderkennung.png","contentUrl":"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2022\/09\/Thumbnail-Bilderkennung.png","width":1920,"height":1080},{"@type":"WebPage","@id":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#webpage","url":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/","name":"Python: Elemente am Aussehen erkennen - Einfache Automatisierung mit PyAutoGUI &mdash; Programmieren mit Chris","isPartOf":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#primaryimage"},"datePublished":"2022-09-26T05:40:41+00:00","dateModified":"2022-10-01T06:54:44+00:00","breadcrumb":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/christoph-schmalfuss.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Python: Elemente am Aussehen erkennen &#8211; Einfache Automatisierung mit PyAutoGUI"}]},{"@type":"Article","@id":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#article","isPartOf":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#webpage"},"author":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/#\/schema\/person\/b64d7415ba9ac63f395509d7097012bb"},"headline":"Python: Elemente am Aussehen erkennen &#8211; Einfache Automatisierung mit PyAutoGUI","datePublished":"2022-09-26T05:40:41+00:00","dateModified":"2022-10-01T06:54:44+00:00","mainEntityOfPage":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#webpage"},"wordCount":679,"commentCount":0,"publisher":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/#organization"},"image":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#primaryimage"},"thumbnailUrl":"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2022\/09\/Thumbnail-Bilderkennung.png","articleSection":["Bots und Automatisierung"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/christoph-schmalfuss.de\/blog\/2022\/09\/26\/python-bilderkennung-fuer-einfache-automatisierung-nutzen\/#respond"]}]},{"@type":"Person","@id":"https:\/\/christoph-schmalfuss.de\/blog\/#\/schema\/person\/b64d7415ba9ac63f395509d7097012bb","name":"chris","image":{"@type":"ImageObject","@id":"https:\/\/christoph-schmalfuss.de\/blog\/#personlogo","inLanguage":"de","url":"https:\/\/secure.gravatar.com\/avatar\/176e906a49456dda30761449564e6e69d6b070f731880e6ace0d8e2d1746f1b6?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/176e906a49456dda30761449564e6e69d6b070f731880e6ace0d8e2d1746f1b6?s=96&d=retro&r=g","caption":"chris"},"sameAs":["http:\/\/christoph-schmalfuss.de\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/posts\/462","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/comments?post=462"}],"version-history":[{"count":14,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/posts\/462\/revisions"}],"predecessor-version":[{"id":484,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/posts\/462\/revisions\/484"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/media\/467"}],"wp:attachment":[{"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/media?parent=462"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/categories?post=462"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/tags?post=462"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}