<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-test.hshl.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Ampelphasenerkennung</id>
	<title>Ampelphasenerkennung - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-test.hshl.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Ampelphasenerkennung"/>
	<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;action=history"/>
	<updated>2026-04-29T18:37:38Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in HSHL Mechatronik</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14855&amp;oldid=prev</id>
		<title>Niklas Lingenauber: /* Ausblick */</title>
		<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14855&amp;oldid=prev"/>
		<updated>2016-06-22T10:48:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Ausblick&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 22. Juni 2016, 12:48 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l254&quot;&gt;Zeile 254:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 254:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Direkte Kamera-Einbindung: durch das direkte Einbinden einer Kamera könnte man das Programm direkt mit einem Fahrzeug verbinden. Der Aufruf eines Grafischen User Interfaces könnte entfallen und die gewonnenen Informationen beispielsweise von einem Bremsassistenten genutzt werden.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Direkte Kamera-Einbindung: durch das direkte Einbinden einer Kamera könnte man das Programm direkt mit einem Fahrzeug verbinden. Der Aufruf eines Grafischen User Interfaces könnte entfallen und die gewonnenen Informationen beispielsweise von einem Bremsassistenten genutzt werden.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Entwicklung als Funktion mir Rückgabewerten: Um einen Einsatz in einem Gesamtsystem zu ermöglichen, muss das Programm als eine Funktion umgeschrieben werden. Defür ist es sinnvoll, den Algorithmus so zu ändern, dass dieser statt des Einzeichnen der einzelnen Ampeln ein Rückgabewert besitzt, der eindeutig eine Ampelphase definiert. Es wären hierfür mindestens 5 Rückgabewerte nötig, die folgende Phasen beschreiben: Rot, Gelb, Grün, Rot-Gelb und keine erkannte Ampelphase.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Entwicklung als Funktion mir Rückgabewerten: Um einen Einsatz in einem Gesamtsystem zu ermöglichen, muss das Programm als eine Funktion umgeschrieben werden. Defür ist es sinnvoll, den Algorithmus so zu ändern, dass dieser statt des Einzeichnen der einzelnen Ampeln ein Rückgabewert besitzt, der eindeutig eine Ampelphase definiert. Es wären hierfür mindestens 5 Rückgabewerte nötig, die folgende Phasen beschreiben: Rot, Gelb, Grün, Rot-Gelb und keine erkannte Ampelphase.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Laufzeit: Die Laufzeit des Algorithmus ist für eine Echtzeitanwendung deutlich zu langsam. Diese könnte durch eine Code-Optimierung oder die Umwandlung in MEX-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Funktionen &lt;/del&gt;ggf. soweit verbessert werden, dass beispielsweise ein Einsatz im Carolo-Cup oder im Automobilbereich denkbar wäre.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Laufzeit: Die Laufzeit des Algorithmus ist für eine Echtzeitanwendung deutlich zu langsam. Diese könnte durch eine Code-Optimierung oder die Umwandlung in MEX-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Files &lt;/ins&gt;ggf. soweit verbessert werden, dass beispielsweise ein Einsatz im Carolo-Cup oder im Automobilbereich denkbar wäre.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Korrektur/Rückmeldungen ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Korrektur/Rückmeldungen ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hier können Nutzer oder kritische Leser (meist Professoren) Verbesserungen fordern/vorschlagen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hier können Nutzer oder kritische Leser (meist Professoren) Verbesserungen fordern/vorschlagen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mtrwiki:diff:1.41:old-14854:rev-14855:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Niklas Lingenauber</name></author>
	</entry>
	<entry>
		<id>https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14854&amp;oldid=prev</id>
		<title>Niklas Lingenauber am 22. Juni 2016 um 10:47 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14854&amp;oldid=prev"/>
		<updated>2016-06-22T10:47:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 22. Juni 2016, 12:47 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l251&quot;&gt;Zeile 251:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 251:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Ausblick ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Ausblick ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Folgende Aspekte sind bei der Ampelphasenerkennung noch weiter zu entwickeln:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Folgende Aspekte sind bei der Ampelphasenerkennung noch weiter zu entwickeln:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Filteroptimierung: Das Filtern nach den Ampelfarben ist im Großen und Ganzen noch zu unsicher. Speziell die Farbe Gelb lässt sich im Alltag schwer auf der Basis von einem Farbraum herausfiltern, da sie je nach Perspektive zwischen einem dunklen und schwachen Orange und einem grellen Gelb-Ton variirt. Durch die Entwicklung eines Filters, der beispielsweise die Farbe in zwei oder mehr Farbräumen untersucht, könnten die Filter-Ergebnisse verbessert werden.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Filteroptimierung: Das Filtern nach den Ampelfarben ist im Großen und Ganzen noch zu unsicher. Speziell die Farbe Gelb lässt sich im Alltag schwer auf der Basis von einem Farbraum herausfiltern, da sie je nach Perspektive zwischen einem dunklen und schwachen Orange und einem grellen Gelb-Ton variirt&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Außerdem ist der Filter momentan tageslichabhängig&lt;/ins&gt;. Durch die Entwicklung eines Filters, der beispielsweise die Farbe in zwei oder mehr Farbräumen untersucht, könnten die Filter-Ergebnisse verbessert werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Direkte Kamera-Einbindung: durch das direkte Einbinden einer Kamera könnte man das Programm direkt mit einem Fahrzeug verbinden. Der Aufruf eines Grafischen User Interfaces könnte entfallen und die gewonnenen Informationen beispielsweise von einem Bremsassistenten genutzt werden.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Direkte Kamera-Einbindung: durch das direkte Einbinden einer Kamera könnte man das Programm direkt mit einem Fahrzeug verbinden. Der Aufruf eines Grafischen User Interfaces könnte entfallen und die gewonnenen Informationen beispielsweise von einem Bremsassistenten genutzt werden.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Entwicklung als Funktion mir Rückgabewerten: Um einen Einsatz in einem Gesamtsystem zu ermöglichen, muss das Programm als eine Funktion umgeschrieben werden. Defür ist es sinnvoll, den Algorithmus so zu ändern, dass dieser statt des Einzeichnen der einzelnen Ampeln ein Rückgabewert besitzt, der eindeutig eine Ampelphase definiert. Es wären hierfür mindestens 5 Rückgabewerte nötig, die folgende Phasen beschreiben: Rot, Gelb, Grün, Rot-Gelb und keine erkannte Ampelphase.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Entwicklung als Funktion mir Rückgabewerten: Um einen Einsatz in einem Gesamtsystem zu ermöglichen, muss das Programm als eine Funktion umgeschrieben werden. Defür ist es sinnvoll, den Algorithmus so zu ändern, dass dieser statt des Einzeichnen der einzelnen Ampeln ein Rückgabewert besitzt, der eindeutig eine Ampelphase definiert. Es wären hierfür mindestens 5 Rückgabewerte nötig, die folgende Phasen beschreiben: Rot, Gelb, Grün, Rot-Gelb und keine erkannte Ampelphase.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Niklas Lingenauber</name></author>
	</entry>
	<entry>
		<id>https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14853&amp;oldid=prev</id>
		<title>Niklas Lingenauber am 22. Juni 2016 um 09:53 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14853&amp;oldid=prev"/>
		<updated>2016-06-22T09:53:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 22. Juni 2016, 11:53 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l96&quot;&gt;Zeile 96:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 96:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%% Analyse eines Bildes %%&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%% Analyse eines Bildes %%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if exist(&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;image&lt;/del&gt;&#039;,&#039;var&#039;) ==  1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if exist(&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;img&lt;/ins&gt;&#039;,&#039;var&#039;) ==  1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         %Maße des Videos einlesen&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         %Maße des Videos einlesen&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        [height, width]  =   size(img(:,:,1));&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        [height, width]  =   size(img(:,:,1));&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mtrwiki:diff:1.41:old-14852:rev-14853:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Niklas Lingenauber</name></author>
	</entry>
	<entry>
		<id>https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14852&amp;oldid=prev</id>
		<title>Niklas Lingenauber am 22. Juni 2016 um 09:46 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14852&amp;oldid=prev"/>
		<updated>2016-06-22T09:46:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;amp;diff=14852&amp;amp;oldid=14848&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Niklas Lingenauber</name></author>
	</entry>
	<entry>
		<id>https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14848&amp;oldid=prev</id>
		<title>Niklas Lingenauber am 21. Juni 2016 um 13:11 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14848&amp;oldid=prev"/>
		<updated>2016-06-21T13:11:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. Juni 2016, 15:11 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Zeile 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Main-Funktion initialisiert die Ampelphasenerkennung und ruft die einzelnen Funktionen zur Erkennung der Ampelphasen auf. Bei Start dieser Funktion wird nach der einrichtung benötigter Variablen ein User-Interface geöffnet, über das der Anwender ein Video im *.mp4-Format oder ein Bild im *.jpg-Format auswählen kann (siehe Abb. 2).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Main-Funktion initialisiert die Ampelphasenerkennung und ruft die einzelnen Funktionen zur Erkennung der Ampelphasen auf. Bei Start dieser Funktion wird nach der einrichtung benötigter Variablen ein User-Interface geöffnet, über das der Anwender ein Video im *.mp4-Format oder ein Bild im *.jpg-Format auswählen kann (siehe Abb. 2).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Anschließend wird abhängig von den Maßen des betrachteten Bildes bzw. Frames eines Videos eine Region Of Interest (ROI) definiert. Da von einer starren Kamera in der Fahrzeug-Front ausgegangen wurde, kann ein festgesetzter Anteil im unteren Teil des Bildes vernachlässigt werden, da sich ampeln immer im mittleren bis oberen Segment befinden und so eine Fehlinterpretation von Bremsleuchten verhindert werden kann. Verschiedene Tests haben gezeigt, dass man die besten Ergebnisse beim Betrachten der oberen 5/8 des Bildes erhält.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Anschließend wird abhängig von den Maßen des betrachteten Bildes bzw. Frames eines Videos eine Region Of Interest (ROI) definiert. Da von einer starren Kamera in der Fahrzeug-Front ausgegangen wurde, kann ein festgesetzter Anteil im unteren Teil des Bildes vernachlässigt werden, da sich ampeln immer im mittleren bis oberen Segment befinden und so eine Fehlinterpretation von Bremsleuchten verhindert werden kann. Verschiedene Tests haben gezeigt, dass man die besten Ergebnisse beim Betrachten der oberen 5/8 des Bildes erhält.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nach dem Zuschneiden des Bildes werden die einzelnen Ampelphasen dedektiert. Dazu wurden Funktionen geschrieben die im nächsten Kapitel genauerer erläutert werden. Als Rückgabewert liefern diese die Koordinaten und die Radien von Kreisen, in denen sich vermutlich das Leuchten einer Ampel befindet. Diese Informationen werden für die jeweilige Farbe getrennt gespeichert. Nach der Ausgabe des originalen unbeschnittenen Bildes werden diese Kreise in der jeweiligen Ampelfarbe in das Bild eingezeichnet. Wird eine bestimmte Anzahl an Kreisen je Farbe ermittelt, handelt es sich vermutlich um eine Fehlinterpretation und die Ampeln werden nicht eingezeichnnet.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nach dem Zuschneiden des Bildes werden die einzelnen Ampelphasen dedektiert. Dazu wurden Funktionen geschrieben die im nächsten Kapitel genauerer erläutert werden. Als Rückgabewert liefern diese die Koordinaten und die Radien von Kreisen, in denen sich vermutlich das Leuchten einer Ampel befindet. Diese Informationen werden für die jeweilige Farbe getrennt gespeichert. Nach der Ausgabe des originalen unbeschnittenen Bildes werden diese Kreise in der jeweiligen Ampelfarbe in das Bild eingezeichnet. Wird eine bestimmte Anzahl an Kreisen je Farbe ermittelt, handelt es sich vermutlich um eine Fehlinterpretation und die Ampeln werden nicht eingezeichnnet.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Bei der Bearbeitung eines Videos werden diese Schritte wiederholt für jedes betrachtete Frame durchgeführt. Um die Geschwindigkeit des Algorithmusses zu erhöhen, werden die Frames nur in bestimmten Abständen betrachtet.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Bei der Bearbeitung eines Videos werden diese Schritte wiederholt für jedes betrachtete Frame durchgeführt. Um die Geschwindigkeit des Algorithmusses zu erhöhen, werden die Frames nur in bestimmten Abständen betrachtet.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Main-Funktion lautet wie folgt:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Main-Funktion lautet wie folgt:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l137&quot;&gt;Zeile 137:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 139:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zur Erkennung einer Ampelphase wurden drei Funktiionen erstellt, die die Ampelfarben Rot, Gelb und Grün dedektieren. Als Eingabeparameter benötigen diese ein Bild, ein Strukturelement zur Durchführung einer Dilatation, einen minimalen und einen maximalen Radius der Ampelkreise sowie eine Sensibilität, inwieweit die Formen von einem Kreis abweichen dürfen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zur Erkennung einer Ampelphase wurden drei Funktiionen erstellt, die die Ampelfarben Rot, Gelb und Grün dedektieren. Als Eingabeparameter benötigen diese ein Bild, ein Strukturelement zur Durchführung einer Dilatation, einen minimalen und einen maximalen Radius der Ampelkreise sowie eine Sensibilität, inwieweit die Formen von einem Kreis abweichen dürfen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Als erstes wird das übergebene Bild nach den Ampelfarben durchsucht. Dafür werden eigens definierte Filter aufgerufen, dessen Entstehung und Aufbau im nächsten Kapitel definiert wurden. Diese liefern ein Binärbild zurück, in dem eine 1 bedeutet, dass die Farbe der gesuchten Ampelfarbe entsprecht. Eine 0 steht für das Gegenteil. Da die Filter relativ scharf eingestellt wurden und nur von einzelnen Pixeln passiert werden, wird anschließend eine Dilatataion mit einem Strukturelement mit der Form eines Kreises durchgeführt und die einzelnen Pixel in große Kreisflächen umgewandelt. In dem entstanden Bild wird anschlißend nach Kreisen innerhalb eines Radien-Intervalls gesucht (siehe Abb. 3). Die Sensibilität legt dabei fest, inwieweit das betrachtete Objekt von der Kreisstruktur abweichen darf.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Als erstes wird das übergebene Bild nach den Ampelfarben durchsucht. Dafür werden eigens definierte Filter aufgerufen, dessen Entstehung und Aufbau im nächsten Kapitel definiert wurden. Diese liefern ein Binärbild zurück, in dem eine 1 bedeutet, dass die Farbe der gesuchten Ampelfarbe entsprecht. Eine 0 steht für das Gegenteil. Da die Filter relativ scharf eingestellt wurden und nur von einzelnen Pixeln passiert werden, wird anschließend eine Dilatataion mit einem Strukturelement mit der Form eines Kreises durchgeführt und die einzelnen Pixel in große Kreisflächen umgewandelt. In dem entstanden Bild wird anschlißend nach Kreisen innerhalb eines Radien-Intervalls gesucht (siehe Abb. 3). Die Sensibilität legt dabei fest, inwieweit das betrachtete Objekt von der Kreisstruktur abweichen darf.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Funktion hat folgenden Aufbau:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Funktion hat folgenden Aufbau:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function [ centers, radii] = FilterYellow( img, SE, RadiusMin, RadiusMax, Sensity )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function [ centers, radii] = FilterYellow( img, SE, RadiusMin, RadiusMax, Sensity )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Niklas Lingenauber</name></author>
	</entry>
	<entry>
		<id>https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14847&amp;oldid=prev</id>
		<title>Niklas Lingenauber: /* Funktionen zur Ampelphasenerkennung */</title>
		<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14847&amp;oldid=prev"/>
		<updated>2016-06-21T13:10:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Funktionen zur Ampelphasenerkennung&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. Juni 2016, 15:10 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l137&quot;&gt;Zeile 137:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 137:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zur Erkennung einer Ampelphase wurden drei Funktiionen erstellt, die die Ampelfarben Rot, Gelb und Grün dedektieren. Als Eingabeparameter benötigen diese ein Bild, ein Strukturelement zur Durchführung einer Dilatation, einen minimalen und einen maximalen Radius der Ampelkreise sowie eine Sensibilität, inwieweit die Formen von einem Kreis abweichen dürfen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zur Erkennung einer Ampelphase wurden drei Funktiionen erstellt, die die Ampelfarben Rot, Gelb und Grün dedektieren. Als Eingabeparameter benötigen diese ein Bild, ein Strukturelement zur Durchführung einer Dilatation, einen minimalen und einen maximalen Radius der Ampelkreise sowie eine Sensibilität, inwieweit die Formen von einem Kreis abweichen dürfen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Als erstes wird das übergebene Bild nach den Ampelfarben durchsucht. Dafür werden eigens definierte Filter aufgerufen, dessen Entstehung und Aufbau im nächsten Kapitel definiert wurden. Diese liefern ein Binärbild zurück, in dem eine 1 bedeutet, dass die Farbe der gesuchten Ampelfarbe entsprecht. Eine 0 steht für das Gegenteil. Da die Filter relativ scharf eingestellt wurden und nur von einzelnen Pixeln passiert werden, wird anschließend eine Dilatataion mit einem Strukturelement mit der Form eines Kreises durchgeführt und die einzelnen Pixel in große Kreisflächen umgewandelt. In dem entstanden Bild wird anschlißend nach Kreisen innerhalb eines Radien-Intervalls gesucht (siehe Abb. 3). Die Sensibilität legt dabei fest, inwieweit das betrachtete Objekt von der Kreisstruktur abweichen darf.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Als erstes wird das übergebene Bild nach den Ampelfarben durchsucht. Dafür werden eigens definierte Filter aufgerufen, dessen Entstehung und Aufbau im nächsten Kapitel definiert wurden. Diese liefern ein Binärbild zurück, in dem eine 1 bedeutet, dass die Farbe der gesuchten Ampelfarbe entsprecht. Eine 0 steht für das Gegenteil. Da die Filter relativ scharf eingestellt wurden und nur von einzelnen Pixeln passiert werden, wird anschließend eine Dilatataion mit einem Strukturelement mit der Form eines Kreises durchgeführt und die einzelnen Pixel in große Kreisflächen umgewandelt. In dem entstanden Bild wird anschlißend nach Kreisen innerhalb eines Radien-Intervalls gesucht (siehe Abb. 3). Die Sensibilität legt dabei fest, inwieweit das betrachtete Objekt von der Kreisstruktur abweichen darf.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Die Funktion hat folgenden Aufbau:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function [ centers, radii] = FilterYellow( img, SE, RadiusMin, RadiusMax, Sensity )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function [ centers, radii] = FilterYellow( img, SE, RadiusMin, RadiusMax, Sensity )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Niklas Lingenauber</name></author>
	</entry>
	<entry>
		<id>https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14846&amp;oldid=prev</id>
		<title>Niklas Lingenauber: /* Ausblick */</title>
		<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14846&amp;oldid=prev"/>
		<updated>2016-06-21T13:09:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Ausblick&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. Juni 2016, 15:09 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l208&quot;&gt;Zeile 208:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 208:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Ausblick ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Ausblick ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Folgende Aspekte sind bei der Ampelphasenerkennung noch weiter zu entwickeln:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Folgende Aspekte sind bei der Ampelphasenerkennung noch weiter zu entwickeln:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &lt;/del&gt;Filteroptimierung: Das Filtern nach den Ampelfarben ist im Großen und Ganzen noch zu unsicher. Speziell die Farbe Gelb lässt sich im Alltag schwer auf der Basis von einem Farbraum herausfiltern, da sie je nach Perspektive zwischen einem dunklen und schwachen Orange und einem grellen Gelb-Ton variirt. Durch die Entwicklung eines Filters, der beispielsweise die Farbe in zwei oder mehr Farbräumen untersucht, könnten die Filter-Ergebnisse verbessert werden.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Filteroptimierung: Das Filtern nach den Ampelfarben ist im Großen und Ganzen noch zu unsicher. Speziell die Farbe Gelb lässt sich im Alltag schwer auf der Basis von einem Farbraum herausfiltern, da sie je nach Perspektive zwischen einem dunklen und schwachen Orange und einem grellen Gelb-Ton variirt. Durch die Entwicklung eines Filters, der beispielsweise die Farbe in zwei oder mehr Farbräumen untersucht, könnten die Filter-Ergebnisse verbessert werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Direkte Kamera-Einbindung: durch das direkte Einbinden einer Kamera könnte man das Programm direkt mit einem Fahrzeug verbinden. Der Aufruf eines Grafischen User Interfaces könnte entfallen und die gewonnenen Informationen beispielsweise von einem Bremsassistenten genutzt werden.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Direkte Kamera-Einbindung: durch das direkte Einbinden einer Kamera könnte man das Programm direkt mit einem Fahrzeug verbinden. Der Aufruf eines Grafischen User Interfaces könnte entfallen und die gewonnenen Informationen beispielsweise von einem Bremsassistenten genutzt werden.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Entwicklung als Funktion mir Rückgabewerten: Um einen Einsatz in einem Gesamtsystem zu ermöglichen, muss das Programm als eine Funktion umgeschrieben werden. Defür ist es sinnvoll, den Algorithmus so zu ändern, dass dieser statt des Einzeichnen der einzelnen Ampeln ein Rückgabewert besitzt, der eindeutig eine Ampelphase definiert. Es wären hierfür mindestens 5 Rückgabewerte nötig, die folgende Phasen beschreiben: Rot, Gelb, Grün, Rot-Gelb und keine erkannte Ampelphase.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Entwicklung als Funktion mir Rückgabewerten: Um einen Einsatz in einem Gesamtsystem zu ermöglichen, muss das Programm als eine Funktion umgeschrieben werden. Defür ist es sinnvoll, den Algorithmus so zu ändern, dass dieser statt des Einzeichnen der einzelnen Ampeln ein Rückgabewert besitzt, der eindeutig eine Ampelphase definiert. Es wären hierfür mindestens 5 Rückgabewerte nötig, die folgende Phasen beschreiben: Rot, Gelb, Grün, Rot-Gelb und keine erkannte Ampelphase.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Niklas Lingenauber</name></author>
	</entry>
	<entry>
		<id>https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14845&amp;oldid=prev</id>
		<title>Niklas Lingenauber am 21. Juni 2016 um 13:09 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14845&amp;oldid=prev"/>
		<updated>2016-06-21T13:09:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. Juni 2016, 15:09 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l209&quot;&gt;Zeile 209:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 209:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Folgende Aspekte sind bei der Ampelphasenerkennung noch weiter zu entwickeln:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Folgende Aspekte sind bei der Ampelphasenerkennung noch weiter zu entwickeln:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- Filteroptimierung: Das Filtern nach den Ampelfarben ist im Großen und Ganzen noch zu unsicher. Speziell die Farbe Gelb lässt sich im Alltag schwer auf der Basis von einem Farbraum herausfiltern, da sie je nach Perspektive zwischen einem dunklen und schwachen Orange und einem grellen Gelb-Ton variirt. Durch die Entwicklung eines Filters, der beispielsweise die Farbe in zwei oder mehr Farbräumen untersucht, könnten die Filter-Ergebnisse verbessert werden.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- Filteroptimierung: Das Filtern nach den Ampelfarben ist im Großen und Ganzen noch zu unsicher. Speziell die Farbe Gelb lässt sich im Alltag schwer auf der Basis von einem Farbraum herausfiltern, da sie je nach Perspektive zwischen einem dunklen und schwachen Orange und einem grellen Gelb-Ton variirt. Durch die Entwicklung eines Filters, der beispielsweise die Farbe in zwei oder mehr Farbräumen untersucht, könnten die Filter-Ergebnisse verbessert werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &lt;/del&gt;Direkte Kamera-Einbindung: durch das direkte Einbinden einer Kamera könnte man das Programm direkt mit einem Fahrzeug verbinden. Der Aufruf eines Grafischen User Interfaces könnte entfallen und die gewonnenen Informationen beispielsweise von einem Bremsassistenten genutzt werden.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Direkte Kamera-Einbindung: durch das direkte Einbinden einer Kamera könnte man das Programm direkt mit einem Fahrzeug verbinden. Der Aufruf eines Grafischen User Interfaces könnte entfallen und die gewonnenen Informationen beispielsweise von einem Bremsassistenten genutzt werden.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &lt;/del&gt;Entwicklung als Funktion: Um einen Einsatz in einem Gesamtsystem zu ermöglichen, muss das Programm als eine Funktion umgeschrieben werden. Defür ist es sinnvoll, den Algorithmus so zu ändern, dass dieser statt des Einzeichnen der einzelnen Ampeln ein Rückgabewert besitzt, der eindeutig eine Ampelphase definiert. Es wären hierfür mindestens 5 Rückgabewerte nötig, die folgende Phasen beschreiben: Rot, Gelb, Grün, Rot-Gelb und keine erkannte Ampelphase.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Entwicklung als Funktion &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mir Rückgabewerten&lt;/ins&gt;: Um einen Einsatz in einem Gesamtsystem zu ermöglichen, muss das Programm als eine Funktion umgeschrieben werden. Defür ist es sinnvoll, den Algorithmus so zu ändern, dass dieser statt des Einzeichnen der einzelnen Ampeln ein Rückgabewert besitzt, der eindeutig eine Ampelphase definiert. Es wären hierfür mindestens 5 Rückgabewerte nötig, die folgende Phasen beschreiben: Rot, Gelb, Grün, Rot-Gelb und keine erkannte Ampelphase.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &lt;/del&gt;Laufzeit: Die Laufzeit des Algorithmus ist für eine Echtzeitanwendung deutlich zu langsam. Diese könnte durch eine Code-Optimierung oder die Umwandlung in MEX-Funktionen ggf. soweit verbessert werden, dass beispielsweise ein Einsatz im Carolo-Cup oder im Automobilbereich denkbar wäre.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Laufzeit: Die Laufzeit des Algorithmus ist für eine Echtzeitanwendung deutlich zu langsam. Diese könnte durch eine Code-Optimierung oder die Umwandlung in MEX-Funktionen ggf. soweit verbessert werden, dass beispielsweise ein Einsatz im Carolo-Cup oder im Automobilbereich denkbar wäre.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Literaturverzeichnis ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Literaturverzeichnis ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Niklas Lingenauber</name></author>
	</entry>
	<entry>
		<id>https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14844&amp;oldid=prev</id>
		<title>Niklas Lingenauber am 21. Juni 2016 um 13:05 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14844&amp;oldid=prev"/>
		<updated>2016-06-21T13:05:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. Juni 2016, 15:05 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Datei:Ampelphasenerkennung Ergebnis.jpg |400px|thumb|right|Abb 1: Darstellung einer &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;gelben &lt;/del&gt;Ampel &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in verschiedenen Farbräumen mit der App ColorThresholder von Matlab&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Datei:Ampelphasenerkennung Ergebnis.jpg |400px|thumb|right|Abb&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. &lt;/ins&gt;1: Darstellung einer &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;erkannten grünen &lt;/ins&gt;Ampel]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Autor:&amp;#039;&amp;#039;&amp;#039; [[Benutzer:Niklas_Lingenauber|Niklas Lingenauber]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Autor:&amp;#039;&amp;#039;&amp;#039; [[Benutzer:Niklas_Lingenauber|Niklas Lingenauber]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Zeile 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Algorithmus ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Algorithmus ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Main-Funktion ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Main-Funktion ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Datei:Ampelphasenerkennung_GUI.jpg |400px|thumb|right|Abb 2: Auswahl eines Videos oder eines Bildes über ein Grafisches User Interface]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Datei:Ampelphasenerkennung_GUI.jpg |400px|thumb|right|Abb&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. &lt;/ins&gt;2: Auswahl eines Videos oder eines Bildes über ein Grafisches User Interface]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Main-Funktion initialisiert die Ampelphasenerkennung und ruft die einzelnen Funktionen zur Erkennung der Ampelphasen auf. Bei Start dieser Funktion wird nach der einrichtung benötigter Variablen ein User-Interface geöffnet, über das der Anwender ein Video im *.mp4-Format oder ein Bild im *.jpg-Format auswählen kann.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Main-Funktion initialisiert die Ampelphasenerkennung und ruft die einzelnen Funktionen zur Erkennung der Ampelphasen auf. Bei Start dieser Funktion wird nach der einrichtung benötigter Variablen ein User-Interface geöffnet, über das der Anwender ein Video im *.mp4-Format oder ein Bild im *.jpg-Format auswählen kann &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(siehe Abb. 2)&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Anschließend wird abhängig von den Maßen des betrachteten Bildes bzw. Frames eines Videos eine Region Of Interest (ROI) definiert. Da von einer starren Kamera in der Fahrzeug-Front ausgegangen wurde, kann ein festgesetzter Anteil im unteren Teil des Bildes vernachlässigt werden, da sich ampeln immer im mittleren bis oberen Segment befinden und so eine Fehlinterpretation von Bremsleuchten verhindert werden kann. Verschiedene Tests haben gezeigt, dass man die besten Ergebnisse beim Betrachten der oberen 5/8 des Bildes erhält.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Anschließend wird abhängig von den Maßen des betrachteten Bildes bzw. Frames eines Videos eine Region Of Interest (ROI) definiert. Da von einer starren Kamera in der Fahrzeug-Front ausgegangen wurde, kann ein festgesetzter Anteil im unteren Teil des Bildes vernachlässigt werden, da sich ampeln immer im mittleren bis oberen Segment befinden und so eine Fehlinterpretation von Bremsleuchten verhindert werden kann. Verschiedene Tests haben gezeigt, dass man die besten Ergebnisse beim Betrachten der oberen 5/8 des Bildes erhält.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nach dem Zuschneiden des Bildes werden die einzelnen Ampelphasen dedektiert. Dazu wurden Funktionen geschrieben die im nächsten &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;KApitel &lt;/del&gt;genauerer erläutert werden. Als Rückgabewert liefern diese die Koordinaten und die Radien von Kreisen, in denen sich vermutlich das Leuchten einer Ampel befindet. Diese Informationen werden für die jeweilige Farbe getrennt gespeichert. Nach der Ausgabe des originalen unbeschnittenen Bildes werden diese Kreise in der jeweiligen Ampelfarbe in das Bild eingezeichnet. Wird eine bestimmte Anzahl an Kreisen je Farbe ermittelt, handelt es sich vermutlich um eine Fehlinterpretation und die Ampeln werden nicht eingezeichnnet.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nach dem Zuschneiden des Bildes werden die einzelnen Ampelphasen dedektiert. Dazu wurden Funktionen geschrieben die im nächsten &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Kapitel &lt;/ins&gt;genauerer erläutert werden. Als Rückgabewert liefern diese die Koordinaten und die Radien von Kreisen, in denen sich vermutlich das Leuchten einer Ampel befindet. Diese Informationen werden für die jeweilige Farbe getrennt gespeichert. Nach der Ausgabe des originalen unbeschnittenen Bildes werden diese Kreise in der jeweiligen Ampelfarbe in das Bild eingezeichnet. Wird eine bestimmte Anzahl an Kreisen je Farbe ermittelt, handelt es sich vermutlich um eine Fehlinterpretation und die Ampeln werden nicht eingezeichnnet.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Bei der Bearbeitung eines Videos werden diese Schritte wiederholt für jedes betrachtete Frame durchgeführt. Um die Geschwindigkeit des Algorithmusses zu erhöhen, werden die Frames nur in bestimmten Abständen betrachtet.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Bei der Bearbeitung eines Videos werden diese Schritte wiederholt für jedes betrachtete Frame durchgeführt. Um die Geschwindigkeit des Algorithmusses zu erhöhen, werden die Frames nur in bestimmten Abständen betrachtet.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l134&quot;&gt;Zeile 134:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 134:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Funktionen zur Ampelphasenerkennung ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Funktionen zur Ampelphasenerkennung ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Datei:Ampelphasenerkennung_FilterErgebnis.jpg |400px|thumb|right|Abb 3: Darstellung einer roten Ampel als übergebener ROI, als Filter-Ergbenis und als Endergbenis]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Datei:Ampelphasenerkennung_FilterErgebnis.jpg |400px|thumb|right|Abb&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. &lt;/ins&gt;3: Darstellung einer roten Ampel als übergebener ROI, als Filter-Ergbenis und als Endergbenis]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zur Erkennung einer Ampelphase wurden drei Funktiionen erstellt, die die Ampelfarben Rot, Gelb und Grün dedektieren. Als Eingabeparameter benötigen diese ein Bild, ein Strukturelement zur Durchführung einer Dilatation, einen minimalen und einen maximalen Radius der Ampelkreise sowie eine Sensibilität, inwieweit die Formen von einem Kreis abweichen dürfen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zur Erkennung einer Ampelphase wurden drei Funktiionen erstellt, die die Ampelfarben Rot, Gelb und Grün dedektieren. Als Eingabeparameter benötigen diese ein Bild, ein Strukturelement zur Durchführung einer Dilatation, einen minimalen und einen maximalen Radius der Ampelkreise sowie eine Sensibilität, inwieweit die Formen von einem Kreis abweichen dürfen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Als erstes wird das übergebene Bild nach den Ampelfarben durchsucht. Dafür werden eigens definierte Filter aufgerufen, dessen Entstehung und Aufbau im nächsten Kapitel definiert wurden. Diese liefern ein Binärbild zurück, in dem eine 1 bedeutet, dass die Farbe der gesuchten Ampelfarbe entsprecht. Eine 0 steht für das Gegenteil. Da die Filter relativ scharf eingestellt wurden und nur von einzelnen Pixeln passiert werden, wird anschließend eine Dilatataion mit einem Strukturelement mit der Form eines Kreises durchgeführt und die einzelnen Pixel in große Kreisflächen umgewandelt. In dem entstanden Bild wird anschlißend nach Kreisen innerhalb eines Radien-Intervalls gesucht. Die Sensibilität legt dabei fest, inwieweit das betrachtete Objekt von der Kreisstruktur abweichen darf.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Als erstes wird das übergebene Bild nach den Ampelfarben durchsucht. Dafür werden eigens definierte Filter aufgerufen, dessen Entstehung und Aufbau im nächsten Kapitel definiert wurden. Diese liefern ein Binärbild zurück, in dem eine 1 bedeutet, dass die Farbe der gesuchten Ampelfarbe entsprecht. Eine 0 steht für das Gegenteil. Da die Filter relativ scharf eingestellt wurden und nur von einzelnen Pixeln passiert werden, wird anschließend eine Dilatataion mit einem Strukturelement mit der Form eines Kreises durchgeführt und die einzelnen Pixel in große Kreisflächen umgewandelt. In dem entstanden Bild wird anschlißend nach Kreisen innerhalb eines Radien-Intervalls gesucht &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(siehe Abb. 3)&lt;/ins&gt;. Die Sensibilität legt dabei fest, inwieweit das betrachtete Objekt von der Kreisstruktur abweichen darf.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l156&quot;&gt;Zeile 156:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 156:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Farbfilter ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Farbfilter ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Datei:ColorThresholder Gelbe Ampel-Farbräume.JPG |400px|thumb|right|Abb &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&lt;/del&gt;: Darstellung einer gelben Ampel in verschiedenen Farbräumen mit der App ColorThresholder von Matlab]][[Datei:ColorThresholder Gelbe Ampel-gefiltert.JPG |400px|thumb|right|Abb &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&lt;/del&gt;: Ergebnis &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;der &lt;/del&gt;Filterung nach der gelben Ampelphase mit der App ColorThresholder von Matlab]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Datei:ColorThresholder Gelbe Ampel-Farbräume.JPG |400px|thumb|right|Abb&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. 4&lt;/ins&gt;: Darstellung einer gelben Ampel in verschiedenen Farbräumen mit der App ColorThresholder von Matlab]][[Datei:ColorThresholder Gelbe Ampel-gefiltert.JPG |400px|thumb|right|Abb&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. 5&lt;/ins&gt;: Ergebnis &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;einer beispielhaften &lt;/ins&gt;Filterung nach der gelben Ampelphase mit der App ColorThresholder von Matlab]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zur Filterung der jeweiligen Ampelfarbe wurde mit der von Matlab zur Verfügung gestellten App &amp;quot;Color Thresholder&amp;quot; Bildmasken entwickelt, in denen Pixel mit dem gewünschten Farbwert durch eine 1 markiert und somit weiß dargsetllt werden. Pixel, die diesem Kriterium nicht entsprechen werden als 0 gespeichert und schwarz abgebildet. Aus den definierten Filtern lassen sich anschließend automatisiert Matlab-Funktionen generieren. Der Hintergrund und andere störende Objekte werden somit aus dem Bild entfernt und das daraus entstandene Binärbild kann zur weiteren Bildverarbeitung verwendet werden.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zur Filterung der jeweiligen Ampelfarbe wurde mit der von Matlab zur Verfügung gestellten App &amp;quot;Color Thresholder&amp;quot; Bildmasken entwickelt, in denen Pixel mit dem gewünschten Farbwert durch eine 1 markiert und somit weiß dargsetllt werden. Pixel, die diesem Kriterium nicht entsprechen werden als 0 gespeichert und schwarz abgebildet. Aus den definierten Filtern lassen sich anschließend automatisiert Matlab-Funktionen generieren. Der Hintergrund und andere störende Objekte werden somit aus dem Bild entfernt und das daraus entstandene Binärbild kann zur weiteren Bildverarbeitung verwendet werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ein großer Vorteil App ist, dass ein gewünschtes Beispielbild in den einzelnen Farbkanälen der Farbräume RGB, HSV, YCbCr und L*A*B* anzeigt werden kann und eine Analyse, welcher Farbraum sich am besten für die Erkennung der Ampelphasen eignet erleichtert wird (siehe Abb. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&lt;/del&gt;). Der HSV-Farbraum stellte sich dabei als am besten geeignet heraus, da sich die Ampelfarben hier am deutlichsten in den einzelnen Kanälen hervorheben.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ein großer Vorteil App ist, dass ein gewünschtes Beispielbild in den einzelnen Farbkanälen der Farbräume RGB, HSV, YCbCr und L*A*B* anzeigt werden kann und eine Analyse, welcher Farbraum sich am besten für die Erkennung der Ampelphasen eignet erleichtert wird (siehe Abb. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4&lt;/ins&gt;). Der HSV-Farbraum stellte sich dabei als am besten geeignet heraus, da sich die Ampelfarben hier am deutlichsten in den einzelnen Kanälen hervorheben.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Um das bestmögliche Filterergebnis für eine jeweilige Farbe zu erhalten, wurden zur Ermittlung geeigneter Schwellwerte Bild-Collagen erstellt, in denen sich kritische Objekte wie beispielsweise gelbe Verkehrsschilder oder Baustellenbeleuchtungen befinden erstellt. Anhand dieser Collagen wurden verschiedene Schwellwerte getestet und optimiert. Aufgrund der genannten kritischen Objekte wurden die Filter eng definiert, sodass nur vereinzelte Pixel den Filter passieren. Dadurch wird das detektieren von falschen Pixel stark beschränkt, die Fehler-Anfälligkeit im darauffolgenden Programm steigt jedoch stark.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Im ausgewählten Farbraum können anschließend geeignete Schwellwerte für die jeweiligen Farbkanäle ermittelt werden (siehe Abb. 5).&lt;/ins&gt;Um das bestmögliche Filterergebnis für eine jeweilige Farbe zu erhalten, wurden zur Ermittlung geeigneter Schwellwerte Bild-Collagen erstellt, in denen sich kritische Objekte wie beispielsweise gelbe Verkehrsschilder oder Baustellenbeleuchtungen befinden erstellt. Anhand dieser Collagen wurden verschiedene Schwellwerte getestet und optimiert. Aufgrund der genannten kritischen Objekte wurden die Filter eng definiert, sodass nur vereinzelte Pixel den Filter passieren. Dadurch wird das detektieren von falschen Pixel stark beschränkt, die Fehler-Anfälligkeit im darauffolgenden Programm steigt jedoch stark.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eine durch die App &amp;quot;ColorThresholder&amp;quot; generierte Matlab-Funktion sieht beispielsweise wie folgt aus:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eine durch die App &amp;quot;ColorThresholder&amp;quot; generierte Matlab-Funktion sieht beispielsweise wie folgt aus:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l210&quot;&gt;Zeile 210:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 210:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- Filteroptimierung: Das Filtern nach den Ampelfarben ist im Großen und Ganzen noch zu unsicher. Speziell die Farbe Gelb lässt sich im Alltag schwer auf der Basis von einem Farbraum herausfiltern, da sie je nach Perspektive zwischen einem dunklen und schwachen Orange und einem grellen Gelb-Ton variirt. Durch die Entwicklung eines Filters, der beispielsweise die Farbe in zwei oder mehr Farbräumen untersucht, könnten die Filter-Ergebnisse verbessert werden.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- Filteroptimierung: Das Filtern nach den Ampelfarben ist im Großen und Ganzen noch zu unsicher. Speziell die Farbe Gelb lässt sich im Alltag schwer auf der Basis von einem Farbraum herausfiltern, da sie je nach Perspektive zwischen einem dunklen und schwachen Orange und einem grellen Gelb-Ton variirt. Durch die Entwicklung eines Filters, der beispielsweise die Farbe in zwei oder mehr Farbräumen untersucht, könnten die Filter-Ergebnisse verbessert werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- Direkte Kamera-Einbindung: durch das direkte Einbinden einer Kamera könnte man das Programm direkt mit einem Fahrzeug verbinden. Der Aufruf eines Grafischen User Interfaces könnte entfallen und die gewonnenen Informationen beispielsweise von einem Bremsassistenten genutzt werden.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- Direkte Kamera-Einbindung: durch das direkte Einbinden einer Kamera könnte man das Programm direkt mit einem Fahrzeug verbinden. Der Aufruf eines Grafischen User Interfaces könnte entfallen und die gewonnenen Informationen beispielsweise von einem Bremsassistenten genutzt werden.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- Entwicklung als Funktion: Um einen Einsatz in einem Gesamtsystem zu ermöglichen, muss das Programm als eine Funktion umgeschrieben werden. Defür ist es sinnvoll, den Algorithmus so zu ändern, dass dieser statt des Einzeichnen der einzelnen Ampeln ein Rückgabewert besitzt, der eindeutig eine Ampelphase definiert. Es wären hierfür mindestens 5 Rückgabewerte nötig, die folgende Phasen beschreiben: Rot, Gelb, Grün, Rot-Gelb und keine erkannte Ampelphase.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- Laufzeit: Die Laufzeit des Algorithmus ist für eine Echtzeitanwendung deutlich zu langsam. Diese könnte durch eine Code-Optimierung oder die Umwandlung in MEX-Funktionen ggf. soweit verbessert werden, dass beispielsweise ein Einsatz im Carolo-Cup oder im Automobilbereich denkbar wäre.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- Laufzeit: Die Laufzeit des Algorithmus ist für eine Echtzeitanwendung deutlich zu langsam. Diese könnte durch eine Code-Optimierung oder die Umwandlung in MEX-Funktionen ggf. soweit verbessert werden, dass beispielsweise ein Einsatz im Carolo-Cup oder im Automobilbereich denkbar wäre.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mtrwiki:diff:1.41:old-14842:rev-14844:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Niklas Lingenauber</name></author>
	</entry>
	<entry>
		<id>https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14842&amp;oldid=prev</id>
		<title>Niklas Lingenauber am 21. Juni 2016 um 12:53 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Ampelphasenerkennung&amp;diff=14842&amp;oldid=prev"/>
		<updated>2016-06-21T12:53:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. Juni 2016, 14:53 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Zeile 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Algorithmus ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Algorithmus ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Main-Funktion ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Main-Funktion ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Datei:Ampelphasenerkennung_GUI.jpg |400px|thumb|right|Abb 2: Auswahl eines Videos oder eines Bildes über ein Grafisches User Interface]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Main-Funktion initialisiert die Ampelphasenerkennung und ruft die einzelnen Funktionen zur Erkennung der Ampelphasen auf. Bei Start dieser Funktion wird nach der einrichtung benötigter Variablen ein User-Interface geöffnet, über das der Anwender ein Video im *.mp4-Format oder ein Bild im *.jpg-Format auswählen kann.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Main-Funktion initialisiert die Ampelphasenerkennung und ruft die einzelnen Funktionen zur Erkennung der Ampelphasen auf. Bei Start dieser Funktion wird nach der einrichtung benötigter Variablen ein User-Interface geöffnet, über das der Anwender ein Video im *.mp4-Format oder ein Bild im *.jpg-Format auswählen kann.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Anschließend wird abhängig von den Maßen des betrachteten Bildes bzw. Frames eines Videos eine Region Of Interest (ROI) definiert. Da von einer starren Kamera in der Fahrzeug-Front ausgegangen wurde, kann ein festgesetzter Anteil im unteren Teil des Bildes vernachlässigt werden, da sich ampeln immer im mittleren bis oberen Segment befinden und so eine Fehlinterpretation von Bremsleuchten verhindert werden kann. Verschiedene Tests haben gezeigt, dass man die besten Ergebnisse beim Betrachten der oberen 5/8 des Bildes erhält.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Anschließend wird abhängig von den Maßen des betrachteten Bildes bzw. Frames eines Videos eine Region Of Interest (ROI) definiert. Da von einer starren Kamera in der Fahrzeug-Front ausgegangen wurde, kann ein festgesetzter Anteil im unteren Teil des Bildes vernachlässigt werden, da sich ampeln immer im mittleren bis oberen Segment befinden und so eine Fehlinterpretation von Bremsleuchten verhindert werden kann. Verschiedene Tests haben gezeigt, dass man die besten Ergebnisse beim Betrachten der oberen 5/8 des Bildes erhält.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l133&quot;&gt;Zeile 133:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 134:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Funktionen zur Ampelphasenerkennung ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Funktionen zur Ampelphasenerkennung ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Datei:Ampelphasenerkennung_FilterErgebnis.jpg |400px|thumb|right|Abb 3: Darstellung einer roten Ampel als übergebener ROI, als Filter-Ergbenis und als Endergbenis]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zur Erkennung einer Ampelphase wurden drei Funktiionen erstellt, die die Ampelfarben Rot, Gelb und Grün dedektieren. Als Eingabeparameter benötigen diese ein Bild, ein Strukturelement zur Durchführung einer Dilatation, einen minimalen und einen maximalen Radius der Ampelkreise sowie eine Sensibilität, inwieweit die Formen von einem Kreis abweichen dürfen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zur Erkennung einer Ampelphase wurden drei Funktiionen erstellt, die die Ampelfarben Rot, Gelb und Grün dedektieren. Als Eingabeparameter benötigen diese ein Bild, ein Strukturelement zur Durchführung einer Dilatation, einen minimalen und einen maximalen Radius der Ampelkreise sowie eine Sensibilität, inwieweit die Formen von einem Kreis abweichen dürfen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Als erstes wird das übergebene Bild nach den Ampelfarben durchsucht. Dafür werden eigens definierte Filter aufgerufen, dessen Entstehung und Aufbau im nächsten Kapitel definiert wurden. Diese liefern ein Binärbild zurück, in dem eine 1 bedeutet, dass die Farbe der gesuchten Ampelfarbe entsprecht. Eine 0 steht für das Gegenteil. Da die Filter relativ scharf eingestellt wurden und nur von einzelnen Pixeln passiert werden, wird anschließend eine Dilatataion mit einem Strukturelement mit der Form eines Kreises durchgeführt und die einzelnen Pixel in große Kreisflächen umgewandelt. In dem entstanden Bild wird anschlißend nach Kreisen innerhalb eines Radien-Intervalls gesucht. Die Sensibilität legt dabei fest, inwieweit das betrachtete Objekt von der Kreisstruktur abweichen darf.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Als erstes wird das übergebene Bild nach den Ampelfarben durchsucht. Dafür werden eigens definierte Filter aufgerufen, dessen Entstehung und Aufbau im nächsten Kapitel definiert wurden. Diese liefern ein Binärbild zurück, in dem eine 1 bedeutet, dass die Farbe der gesuchten Ampelfarbe entsprecht. Eine 0 steht für das Gegenteil. Da die Filter relativ scharf eingestellt wurden und nur von einzelnen Pixeln passiert werden, wird anschließend eine Dilatataion mit einem Strukturelement mit der Form eines Kreises durchgeführt und die einzelnen Pixel in große Kreisflächen umgewandelt. In dem entstanden Bild wird anschlißend nach Kreisen innerhalb eines Radien-Intervalls gesucht. Die Sensibilität legt dabei fest, inwieweit das betrachtete Objekt von der Kreisstruktur abweichen darf.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Niklas Lingenauber</name></author>
	</entry>
</feed>