{"id":70,"date":"2012-09-23T13:17:45","date_gmt":"2012-09-23T13:17:45","guid":{"rendered":"https:\/\/hostadm.lithium.selfhost.de\/?p=70"},"modified":"2020-12-09T21:46:32","modified_gmt":"2020-12-09T21:46:32","slug":"slotcountandroid","status":"publish","type":"post","link":"https:\/\/martin-seewaldt.de\/?p=70","title":{"rendered":"SlotCount(Android)"},"content":{"rendered":"<p><b>Gestelltes Problem<\/b><br \/>\nIch hatte mich ja schon h\u00e4ufiger mit der Erstellung von Software im Umfeld meiner Faller-Rennbahn\u00a0<a href=\"https:\/\/martin-seewaldt.de\/?p=33\" target=\"_top\" rel=\"noopener noreferrer\">besch\u00e4ftigt<\/a>. Nachdem ich dann ein Android-Handy hatte, reifte in mir die Idee, dass man vielleicht einen Rundenz\u00e4hler machen k\u00f6nnte. Die eingebaute Kamera w\u00fcrde die Strecke filmen und erkennen wenn eines der beiden Autos \u00fcber die Ziellinie f\u00e4hrt.<\/p>\n<p><b>Programm<\/b><br \/>\nDie erforderlichen Elemente hatte ich in irgendeiner Form alle schon einmal gemacht, die Bewegungserkennung, das Ermitteln des Bereichs in dem sich ein Fahrzeug aufhalten kann und auch das Zuordnen einer erkannten Bewegung zu einem der beiden Fahrzeuge. Die M\u00f6glichkeiten, die man f\u00fcr die Android-Entwicklung mit Eclipse hat, sind schon recht umfangreich und so kam ich schnell voran.<br \/>\nMittendrin beschloss ich die Anwendung auch im Android Appstore zu ver\u00f6ffentlichen, was dann noch einigen Zusatzaufwand z.B. f\u00fcr die Internationalisierung bedeutete.<br \/>\nDie Benutzung der Anwendung besteht aus drei Phasen, als Erstes das Einstellen des Erkennungsalgorithmus, Wert f\u00fcr die Empfindlichkeit und die ungef\u00e4hre Gr\u00f6sse der zu erkennenden Objekte. Dann musste die Anwendung lernen, wo die Fahrzeugspuren verlaufen. Danach konnten dann Rennen gefahren werden. Nachdem die Anwendung gelernt hatte, wo die Spuren verlaufen, durfte das Smartphone nicht mehr bewegt werden, so dass ich s\u00e4mtliche Abl\u00e4ufe \u00fcber Sprachausgaben des Handys steuerte.<\/p>\n<p><b>Screenshots:<\/b><br \/>\n<img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Programme\/slotcountpreferences.bmp\" \/><br \/>\nDas Men\u00fc (englische Version)<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Programme\/slotcountcameraparameter_pencil-de.png\" \/><br \/>\nEinstellung der Erkennungsparameter. Auf die gr\u00fcne Anzeige unten Rechts bin ich ein bisschen stolz (Ist alten Tonband-Aussteuerungsr\u00f6hren nachempfunden). Sie zeigt an den Stellen weiss, wo im Kamerabild eine Bewegung (hier der Bleistift) erkannt wurde.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Programme\/slotcountfindtracks.png\" \/><br \/>\nNach Abschluss der Spurkalibrierung. Die Rechtecke geben die Bereiche vor, in denen das Fahrzeug detektiert wurde. Die Farbe der Rechtecke ist automatisch aus der Fahrzeugfarbe bestimmt worden. Die Pfeile deuten die erkannte Fahrtrichtung an.<\/p>\n<p>Hier eine Kalibrierung im Video (da war noch ein Bug in der App wodurch die Richtungspfeile gedreht wurden):<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=rOtlMnOEcfU\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Android\/slotcount_tutorial-de\/calibration_thumb.png\" \/><\/a><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Programme\/slotcountrace-de.png\" \/><br \/>\nRennview. Es werden f\u00fcr jedes Fahrzeug die Runden gez\u00e4hlt, die Rundenzeit und die schnellste Runde ermittelt. F\u00fcr den Start gibt es einen Countdown. Dabei werden auf Wunsch auch Fehlstarts erkannt. Wer zuerst die eingestellte Rundenanzahl erreicht, wird als Gewinner ausgerufen. Falls beide Fahrzeuge im gleichen Kamerabild die Ziellinie \u00fcberqueren, gewinnt der Fahrer, dessen Auto am weitesten ins Kamerabild reingefahren ist.<\/p>\n<p>Hier ein Rennen im Video:<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=8FzSsFgsw_8\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Android\/slotcount_tutorial-de\/race_thumb.png\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gestelltes Problem Ich hatte mich ja schon h\u00e4ufiger mit der Erstellung von Software im Umfeld meiner Faller-Rennbahn\u00a0besch\u00e4ftigt. Nachdem ich dann ein Android-Handy hatte, reifte in mir die Idee, dass man vielleicht einen Rundenz\u00e4hler machen k\u00f6nnte. Die eingebaute Kamera w\u00fcrde die Strecke filmen und erkennen wenn eines der beiden Autos \u00fcber die Ziellinie f\u00e4hrt. Programm Die [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3],"tags":[],"class_list":["post-70","post","type-post","status-publish","format-standard","hentry","category-programme_apps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SlotCount(Android) - Martin Seewaldt<\/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:\/\/martin-seewaldt.de\/?p=70\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SlotCount(Android) - Martin Seewaldt\" \/>\n<meta property=\"og:description\" content=\"Gestelltes Problem Ich hatte mich ja schon h\u00e4ufiger mit der Erstellung von Software im Umfeld meiner Faller-Rennbahn\u00a0besch\u00e4ftigt. Nachdem ich dann ein Android-Handy hatte, reifte in mir die Idee, dass man vielleicht einen Rundenz\u00e4hler machen k\u00f6nnte. Die eingebaute Kamera w\u00fcrde die Strecke filmen und erkennen wenn eines der beiden Autos \u00fcber die Ziellinie f\u00e4hrt. Programm Die [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/martin-seewaldt.de\/?p=70\" \/>\n<meta property=\"og:site_name\" content=\"Martin Seewaldt\" \/>\n<meta property=\"article:published_time\" content=\"2012-09-23T13:17:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-12-09T21:46:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/martin-seewaldt.de\/Programme\/slotcountpreferences.bmp\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/#\\\/schema\\\/person\\\/a1a6571321f54991629bb99be16f5e5f\"},\"headline\":\"SlotCount(Android)\",\"datePublished\":\"2012-09-23T13:17:45+00:00\",\"dateModified\":\"2020-12-09T21:46:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70\"},\"wordCount\":379,\"commentCount\":2,\"image\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/martin-seewaldt.de\\\/Programme\\\/slotcountpreferences.bmp\",\"articleSection\":[\"Programme\\\/Apps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70\",\"url\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70\",\"name\":\"SlotCount(Android) - Martin Seewaldt\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/martin-seewaldt.de\\\/Programme\\\/slotcountpreferences.bmp\",\"datePublished\":\"2012-09-23T13:17:45+00:00\",\"dateModified\":\"2020-12-09T21:46:32+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/#\\\/schema\\\/person\\\/a1a6571321f54991629bb99be16f5e5f\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70#primaryimage\",\"url\":\"https:\\\/\\\/martin-seewaldt.de\\\/Programme\\\/slotcountpreferences.bmp\",\"contentUrl\":\"https:\\\/\\\/martin-seewaldt.de\\\/Programme\\\/slotcountpreferences.bmp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=70#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/martin-seewaldt.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SlotCount(Android)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/#website\",\"url\":\"https:\\\/\\\/martin-seewaldt.de\\\/\",\"name\":\"Martin Seewaldt\",\"description\":\"Einige meiner Projekte\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/martin-seewaldt.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/#\\\/schema\\\/person\\\/a1a6571321f54991629bb99be16f5e5f\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c382657803c93429dee7a228c33968728e6adc9a850a0b0488abd4e9c466179?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c382657803c93429dee7a228c33968728e6adc9a850a0b0488abd4e9c466179?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c382657803c93429dee7a228c33968728e6adc9a850a0b0488abd4e9c466179?s=96&d=mm&r=g\",\"caption\":\"admin\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SlotCount(Android) - Martin Seewaldt","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:\/\/martin-seewaldt.de\/?p=70","og_locale":"en_US","og_type":"article","og_title":"SlotCount(Android) - Martin Seewaldt","og_description":"Gestelltes Problem Ich hatte mich ja schon h\u00e4ufiger mit der Erstellung von Software im Umfeld meiner Faller-Rennbahn\u00a0besch\u00e4ftigt. Nachdem ich dann ein Android-Handy hatte, reifte in mir die Idee, dass man vielleicht einen Rundenz\u00e4hler machen k\u00f6nnte. Die eingebaute Kamera w\u00fcrde die Strecke filmen und erkennen wenn eines der beiden Autos \u00fcber die Ziellinie f\u00e4hrt. Programm Die [&hellip;]","og_url":"https:\/\/martin-seewaldt.de\/?p=70","og_site_name":"Martin Seewaldt","article_published_time":"2012-09-23T13:17:45+00:00","article_modified_time":"2020-12-09T21:46:32+00:00","og_image":[{"url":"https:\/\/martin-seewaldt.de\/Programme\/slotcountpreferences.bmp","type":"","width":"","height":""}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/martin-seewaldt.de\/?p=70#article","isPartOf":{"@id":"https:\/\/martin-seewaldt.de\/?p=70"},"author":{"name":"admin","@id":"https:\/\/martin-seewaldt.de\/#\/schema\/person\/a1a6571321f54991629bb99be16f5e5f"},"headline":"SlotCount(Android)","datePublished":"2012-09-23T13:17:45+00:00","dateModified":"2020-12-09T21:46:32+00:00","mainEntityOfPage":{"@id":"https:\/\/martin-seewaldt.de\/?p=70"},"wordCount":379,"commentCount":2,"image":{"@id":"https:\/\/martin-seewaldt.de\/?p=70#primaryimage"},"thumbnailUrl":"https:\/\/martin-seewaldt.de\/Programme\/slotcountpreferences.bmp","articleSection":["Programme\/Apps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/martin-seewaldt.de\/?p=70#respond"]}]},{"@type":"WebPage","@id":"https:\/\/martin-seewaldt.de\/?p=70","url":"https:\/\/martin-seewaldt.de\/?p=70","name":"SlotCount(Android) - Martin Seewaldt","isPartOf":{"@id":"https:\/\/martin-seewaldt.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/martin-seewaldt.de\/?p=70#primaryimage"},"image":{"@id":"https:\/\/martin-seewaldt.de\/?p=70#primaryimage"},"thumbnailUrl":"https:\/\/martin-seewaldt.de\/Programme\/slotcountpreferences.bmp","datePublished":"2012-09-23T13:17:45+00:00","dateModified":"2020-12-09T21:46:32+00:00","author":{"@id":"https:\/\/martin-seewaldt.de\/#\/schema\/person\/a1a6571321f54991629bb99be16f5e5f"},"breadcrumb":{"@id":"https:\/\/martin-seewaldt.de\/?p=70#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/martin-seewaldt.de\/?p=70"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/martin-seewaldt.de\/?p=70#primaryimage","url":"https:\/\/martin-seewaldt.de\/Programme\/slotcountpreferences.bmp","contentUrl":"https:\/\/martin-seewaldt.de\/Programme\/slotcountpreferences.bmp"},{"@type":"BreadcrumbList","@id":"https:\/\/martin-seewaldt.de\/?p=70#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/martin-seewaldt.de\/"},{"@type":"ListItem","position":2,"name":"SlotCount(Android)"}]},{"@type":"WebSite","@id":"https:\/\/martin-seewaldt.de\/#website","url":"https:\/\/martin-seewaldt.de\/","name":"Martin Seewaldt","description":"Einige meiner Projekte","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/martin-seewaldt.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/martin-seewaldt.de\/#\/schema\/person\/a1a6571321f54991629bb99be16f5e5f","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8c382657803c93429dee7a228c33968728e6adc9a850a0b0488abd4e9c466179?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8c382657803c93429dee7a228c33968728e6adc9a850a0b0488abd4e9c466179?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8c382657803c93429dee7a228c33968728e6adc9a850a0b0488abd4e9c466179?s=96&d=mm&r=g","caption":"admin"}}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=\/wp\/v2\/posts\/70","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=70"}],"version-history":[{"count":10,"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=\/wp\/v2\/posts\/70\/revisions"}],"predecessor-version":[{"id":525,"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=\/wp\/v2\/posts\/70\/revisions\/525"}],"wp:attachment":[{"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=70"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=70"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=70"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}