<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Basiswissen &#8211; ChatGPT, KI und Software auf dem Raspberry Pi</title>
	<atom:link href="https://progpi.de/category/basiswissen/feed/" rel="self" type="application/rss+xml" />
	<link>https://progpi.de</link>
	<description>ChatGPT, KI und die Zukunft</description>
	<lastBuildDate>Mon, 12 Jan 2026 10:42:58 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://progpi.de/wp-content/uploads/2019/01/cropped-ProgPi_512-32x32.png</url>
	<title>Basiswissen &#8211; ChatGPT, KI und Software auf dem Raspberry Pi</title>
	<link>https://progpi.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>OpenAI Whisper als lokale Spracherkennung</title>
		<link>https://progpi.de/openai-whisper-als-lokale-spracherkennung/</link>
					<comments>https://progpi.de/openai-whisper-als-lokale-spracherkennung/#respond</comments>
		
		<dc:creator><![CDATA[Harald Schmidt]]></dc:creator>
		<pubDate>Sun, 11 Jan 2026 18:51:00 +0000</pubDate>
				<category><![CDATA[Basiswissen]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<guid isPermaLink="false">https://progpi.de/?p=8907</guid>

					<description><![CDATA[<p>Warum eine lokale Spracherkennung?  Der größte Vorteil einer lokalen Installation von OpenAI Whisper liegt auf der Hand:Weder Ihre Stimme noch ihre Audiodaten verlassen den eigenen Rechner!  Gerade bei sensiblen Inhalten – Interviews, Forschung, Unterricht, internen Meetings oder kreativen Texten – ist Datenschutz kein „Nice-to-have“, sondern möglicherweise eine gesetzliche Anforderung. Eine lokale Whisper-Installation bedeutet: Volle Datenhoheit [&#8230;]</p>
<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/openai-whisper-als-lokale-spracherkennung/">OpenAI Whisper als lokale Spracherkennung</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="8907" class="elementor elementor-8907">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-c753be6 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c753be6" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-908f29b" data-id="908f29b" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9776c3a elementor-widget elementor-widget-text-editor" data-id="9776c3a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h3 class="western">Warum eine lokale Spracherkennung?</h3><p> Der größte Vorteil einer <strong>lokalen Installation von OpenAI Whisper</strong> liegt auf der Hand:<br /><strong>Weder Ihre Stimme noch ihre Audiodaten </strong><strong>verl</strong><strong>assen</strong><strong> den eigenen Rechner! </strong></p><p>Gerade bei sensiblen Inhalten – Interviews, Forschung, Unterricht, internen Meetings oder kreativen Texten – ist Datenschutz kein „Nice-to-have“, sondern möglicherweise eine gesetzliche Anforderung. Eine lokale <b>Whisper-Installation</b> bedeutet:</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-918b10d elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="918b10d" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-831c027" data-id="831c027" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9c9af84 elementor-widget elementor-widget-text-editor" data-id="9c9af84" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li><strong>Volle Datenhoheit (keine Cloud, keine API-Uploads)</strong></li><li><strong>Offline-Fähigkeit</strong></li><li><strong>Reproduzierbare Ergebnisse</strong></li><li><strong>Keine laufenden Kosten pro Token bzw. Audiominute</strong></li><li><strong>Kontrolle über die KI-Modellgröße und Qualität</strong></li><li><strong>Lauffähig auch auch leistungsschwachen Computern wie dem Raspberry Pi 5</strong></li></ul>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-2816ead elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2816ead" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5d34164" data-id="5d34164" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-ec19f9c elementor-widget elementor-widget-text-editor" data-id="ec19f9c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Im Gegensatz zu vielen Cloud-Diensten bleibt Whisper vollständig transparent: Man weiß, welches KI-Modell läuft, wie lange es rechnet und wo die Ergebnisse gespeichert werden.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-0c2d222 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="0c2d222" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5aa4a54" data-id="5aa4a54" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9f97910 elementor-widget elementor-widget-text-editor" data-id="9f97910" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h3 class="western">Bequemlichkeit oder individueller Datenschutz?</h3><p>ChatGPT bietet im Audiobereich zwei sehr bequeme Arten der Interaktion an:</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-c7e3dd7 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c7e3dd7" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b1c2de4" data-id="b1c2de4" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d044654 elementor-widget elementor-widget-text-editor" data-id="d044654" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p class="western"><a href="https://progpi.de/wp-content/uploads/2026/01/ChatGPT-Diktieren-Audiomodus.png"><img fetchpriority="high" decoding="async" class="alignnone size-large wp-image-8916" src="https://progpi.de/wp-content/uploads/2026/01/ChatGPT-Diktieren-Audiomodus-1024x196.png" alt="" width="1024" height="196" srcset="https://progpi.de/wp-content/uploads/2026/01/ChatGPT-Diktieren-Audiomodus-1024x196.png 1024w, https://progpi.de/wp-content/uploads/2026/01/ChatGPT-Diktieren-Audiomodus-300x57.png 300w, https://progpi.de/wp-content/uploads/2026/01/ChatGPT-Diktieren-Audiomodus-768x147.png 768w, https://progpi.de/wp-content/uploads/2026/01/ChatGPT-Diktieren-Audiomodus.png 1093w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p><p>Diktieren bedeutet, den Prompt durch Sprechen zu befüllen, aber den Text zusätzlich per Tastatur abändern zu können. Der Audiomodus führt dagegen zu einem direkten Dialog, der nur durch einen Audiomitschnitt gespeichert werden kann. In <a href="https://progpi.de/wp-content/uploads/2026/01/ChatGPT-Diktieren-Audiomodus.pdf"><u>ChatGPT-Diktieren-Audiomodus.pdf</u></a>.  beschreibt ChatGPT 5.2 diese Funktionen recht anschaulich. Was allerdings mit den übertragenen Sprachdaten geschieht, bleibt unklar.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-c71387e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c71387e" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ffc663c" data-id="ffc663c" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<section class="elementor-section elementor-inner-section elementor-element elementor-element-0f07967 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="0f07967" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-8272c9f" data-id="8272c9f" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-77c201c elementor-widget elementor-widget-image" data-id="77c201c" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
											<a href="https://www.youtube.com/shorts/C85nCMkRnNE" target="_blank" rel="noopener">
							<img decoding="async" width="509" height="687" src="https://progpi.de/wp-content/uploads/2026/01/Ameca-Youtube.jpg" class="attachment-large size-large wp-image-8930" alt="Ameca im Zukunftsmuseum Nürnberg - Interaktion mit ChatGPT" srcset="https://progpi.de/wp-content/uploads/2026/01/Ameca-Youtube.jpg 509w, https://progpi.de/wp-content/uploads/2026/01/Ameca-Youtube-222x300.jpg 222w" sizes="(max-width: 509px) 100vw, 509px" />								</a>
											<figcaption class="widget-image-caption wp-caption-text">Ameca im Zukunftsmuseum Nürnberg - Interaktion mit ChatGPT</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
				<div class="elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-741c57c" data-id="741c57c" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-c502912 elementor-widget elementor-widget-text-editor" data-id="c502912" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Und auch <a href="https://www.youtube.com/shorts/C85nCMkRnNE" target="_blank" rel="noopener">Ameca, ein humanoider Roboter</a>, mit dem man im Deutschen Museum Nürnberg (Zukunftsmuseum) wunderbar interagieren kann, bleibt in dieser Hinsicht schweigsam.  </p><p>Sprachsynthese (TTS = Text to Speech) wird wirksam, wenn Ameca spricht, und eine Spracherkennung (STT = Speech to Text) erfolgt, wenn Ameca zuhört. Ob Ihre Stimme dabei in die USA übertragen wird, wollte Ameca mir nicht verraten.</p><p>Künstlich generierte Stimmen sind übrigens an ganz kleinen Auffälligkeiten im MEL-Spektrum der Audiodatei erkennbar, das man sich mit Audacity anzeigen lassen kann.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e534dfd elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e534dfd" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b6660a3" data-id="b6660a3" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-febc677 elementor-widget elementor-widget-text-editor" data-id="febc677" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h3>Sprachsynthese und Spracherkennung </h3><p>Ameca hat eine Verbindung zu ChatGPT und wie bei &#8222;Audiomodus verwenden&#8220; auf der OpenAI-Webseite können Sie bei der Interaktion zwischen Mensch und Maschine Gefühle empfinden. Ameca hat eine fest vorgegebene Stimme, fasziniert aber durch Mimik und Robotik. Dem heimischen ChatGPT kann man dagegen selbst eine Stimmlage zuordnen und die Vorlesefunktion (Lautsprechersymbol) funktioniert auch ganz gut. <span style="font-size: 16px;">Als &#8222;Platzhirsch&#8220; im Bereich Sprachsynthese gilt hingegen <b>ElevenLabs</b>. Während die Zerlegung von Sprachsignalen in Phoneme der vor 20 Jahren übliche Standard war, sind die LLMs (Large Language Models) auch in diesem Bereich dominant geworden, und haben das umständliche Trainieren mit der eigenen Stimme (vor der Spracherkennung) obsolet gemacht. In der Bezahlversion genügt ElevenLabs eine Stimmprobe von einer Minute zur Generierung beliebig vieler gesprochener Texte.</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-38cae68 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="38cae68" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1e0cb53" data-id="1e0cb53" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-bd98d95 elementor-widget elementor-widget-text-editor" data-id="bd98d95" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h3>OpenAI Whisper installieren</h3><p>Im Downloadbereich finden Sie in Kürze alle notwendigen Dateien zur Installation von Whisper auf ihrem PC, wobei folgende Dateien verwendbar sind:</p><ul><li>inst_whisper.bat (für Windows10/11)</li><li>inst_whisper.sh (für Linux/Raspberry Pi)</li></ul>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-073296c elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="073296c" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8b9fdda" data-id="8b9fdda" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-1571853 elementor-widget elementor-widget-image" data-id="1571853" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img decoding="async" width="768" height="503" src="https://progpi.de/wp-content/uploads/2026/01/Whisper-Screenshot-768x503.png" class="attachment-medium_large size-medium_large wp-image-8940" alt="OpenAI Whisper auf einem Windows11 Laptop" srcset="https://progpi.de/wp-content/uploads/2026/01/Whisper-Screenshot-768x503.png 768w, https://progpi.de/wp-content/uploads/2026/01/Whisper-Screenshot-300x196.png 300w, https://progpi.de/wp-content/uploads/2026/01/Whisper-Screenshot-1024x670.png 1024w, https://progpi.de/wp-content/uploads/2026/01/Whisper-Screenshot.png 1424w" sizes="(max-width: 768px) 100vw, 768px" />											<figcaption class="widget-image-caption wp-caption-text">OpenAI Whisper auf einem Windows11 Laptop</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-ee5ef94 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="ee5ef94" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e9a3bdc" data-id="e9a3bdc" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9e0903d elementor-widget elementor-widget-text-editor" data-id="9e0903d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h3>Arbeiten mit <code>run_whisper_live.ps1</code></h3><p>Der Workflow ist bewusst einfach gehalten:</p><ul><li><p>Einlesen von <code>.mp3</code> und <code>.mp4</code> Dateien</p></li><li><p>Zusätzlich ein <strong>Live-Modus</strong> für direkte Mikrofonaufnahme</p></li><li><p>Modellauswahl über <strong>Buchstaben-Anhang</strong></p></li></ul><p>Beispiele zur Eingabe bei DateiNr:</p><pre><code>1t  → Datei 1 mit Modell tiny</code> (im Screenshot verwendet)<code><br />2b  → Datei 2 mit Modell base</code> <code><br />3s  → Datei 3 mit Modell small</code></pre><p>Das erlaubt ein schnelles Experimentieren mit unterschiedlichen Modellen (von tiny bis medium) ohne Konfigurationsdateien. Lyrische Texte dürften übrigens schwieriger zu erkennen sein als Prosa. Die Erkennungsqualität ist bei einem kleinen und schnellen Modell signifikant niedriger. So liefert der Tiny Modus in obigen Beispiel:</p><p><span style="color: #800000;"><strong>Da wo die Pfägs sie belügen</strong></span> statt</p><p><strong><span style="color: #008000;">Da wo Deepfakes sie belügen</span></strong>.</p><p>Schon mit dem Modell base verschwindet dieser Fehler.</p><p>Im vorherigen <span style="font-family: Roboto, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">Screenshot ist KI_Lyrisch.mp3 ein Ausschnitt von</span><span style="font-size: 16px;"> </span><a style="font-size: 16px; background-color: #feffef;" href="https://www.isbn.de/buch/9783910863583/chatgpt-openai-und-der-blaue-planet#Autorenlesung" target="_blank" rel="noopener"><u>Lyrisches-Vorwort.mp3</u></a><span style="font-size: 16px;">. Zur Aufzeichnung über das Mikrofon wird ffmpeg und zum Abspielen wird ffplay verwendet. Der nachfolgende Screenshot zeigt den mit OpenAI Whisper generierten Text zu einem in Nürnberg aufgenommen <a href="https://www.youtube.com/shorts/C85nCMkRnNE" target="_blank" rel="noopener"><u>Dialog mit Ameca (Youtube)</u></a> &#8211; wobei meine eigene kritische Stimme wiederum ein &#8222;KI-Klon&#8220; ist:</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-611114f elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="611114f" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-816cf99" data-id="816cf99" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-4cc026d elementor-widget elementor-widget-image" data-id="4cc026d" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1024" height="619" src="https://progpi.de/wp-content/uploads/2026/01/ameca_roboter_Zukunft_Textvergleich-1024x619.png" class="attachment-large size-large wp-image-8947" alt="Vergleich der Erkennungsqualität von Whisper bei tiny und medium" srcset="https://progpi.de/wp-content/uploads/2026/01/ameca_roboter_Zukunft_Textvergleich-1024x619.png 1024w, https://progpi.de/wp-content/uploads/2026/01/ameca_roboter_Zukunft_Textvergleich-300x181.png 300w, https://progpi.de/wp-content/uploads/2026/01/ameca_roboter_Zukunft_Textvergleich-768x464.png 768w, https://progpi.de/wp-content/uploads/2026/01/ameca_roboter_Zukunft_Textvergleich-1536x928.png 1536w, https://progpi.de/wp-content/uploads/2026/01/ameca_roboter_Zukunft_Textvergleich.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-fe4d816 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="fe4d816" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-24340a0" data-id="24340a0" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-1e08e70 elementor-widget elementor-widget-text-editor" data-id="1e08e70" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Der Vorteil einer Spracherkennung mit dem Modell tiny liegt in der kurzen Verarbeitungszeit. Wer längere Audiodateien in maximaler Qualität (hier medium) auf einem leistungsschwachen PC in Text umwandeln möchte, lässt den PC einfach über Nacht durchlaufen. </p><p>Welche Erfahrungen mit Spracherkennung und Sprachsynthese haben Sie gemacht? Gerne helfe ich bei Problemen. Hinterlassen Sie einfach einen Kommentar.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/openai-whisper-als-lokale-spracherkennung/">OpenAI Whisper als lokale Spracherkennung</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://progpi.de/openai-whisper-als-lokale-spracherkennung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GIMP und OpenCV</title>
		<link>https://progpi.de/gimp-und-opencv/</link>
		
		<dc:creator><![CDATA[Harald Schmidt]]></dc:creator>
		<pubDate>Sun, 09 Aug 2020 04:43:10 +0000</pubDate>
				<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[Basiswissen]]></category>
		<guid isPermaLink="false">https://progpi.de/?p=3394</guid>

					<description><![CDATA[<p>GIMP und OpenCV dienen völlig verschiedenen Zwecken. Wer sich aber mit Histogrammen bei GIMP auskennt, wird es leicher haben ähnliche Operationen mit OpenCV zu programmieren und automatisch ablaufen zu lassen.</p>
<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/gimp-und-opencv/">GIMP und OpenCV</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="3394" class="elementor elementor-3394">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-7ba35688 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="7ba35688" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-182358b9" data-id="182358b9" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-5f397b26 elementor-widget elementor-widget-text-editor" data-id="5f397b26" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p></p>
<p>Eigentlich haben <a href="https://de.wikipedia.org/wiki/GIMP" target="_blank" rel="noopener">GIMP</a> und <a href="https://de.wikipedia.org/wiki/OpenCV" target="_blank" rel="noopener">OpenCV</a> nicht so viel gemeinsam. Denn GIMP dient der Bildbearbeitung, während OpenCV ein mächtiges Werkzeug zur Bildverarbeitung ist. Aber wer sich gut mit GIMP (oder auch Photoshop) auskennt, wird es einfacher haben einige Konzepte von OpenCV zu verstehen. Die nachfolgenden Screenshots sind mit GIMP 2.10.8 auf einem <a href="https://progpi.de/raspberry-pi-4/">Raspberry Pi 4</a> entstanden. Beginnen wir mit zwei beliebten Operationen: Kontrastspreizung und Gammakorrektur. Beide Operationen verändern das Histogramm:</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-416b4dc elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="416b4dc" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-03d4584" data-id="03d4584" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-09115d3 elementor-widget elementor-widget-image" data-id="09115d3" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="768" height="328" src="https://progpi.de/wp-content/uploads/2020/08/Gimp_Bild_dunkel_lineare_Kurve-768x328.png" class="attachment-medium_large size-medium_large wp-image-3408" alt="GIMP Kurvenwerkzeug" srcset="https://progpi.de/wp-content/uploads/2020/08/Gimp_Bild_dunkel_lineare_Kurve-768x328.png 768w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Bild_dunkel_lineare_Kurve-300x128.png 300w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Bild_dunkel_lineare_Kurve-1024x437.png 1024w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Bild_dunkel_lineare_Kurve.png 1336w" sizes="(max-width: 768px) 100vw, 768px" />											<figcaption class="widget-image-caption wp-caption-text">Ein dunkles Bild und dessen Histogramm</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a80b79f elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a80b79f" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-825a988" data-id="825a988" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-ff1dcda elementor-widget elementor-widget-text-editor" data-id="ff1dcda" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In der Abbildung sehen Sie links das recht dunkle Originalbild (ein digitalisiertes Dia) und rechts einen GIMP-Dialog. Mit dem  Werkzeug „Kurven“ können die Helligkeitswerte im Histogramm neu verteilt werden (Farben/Kurven im Menü). Wenn Sie dabei eine Gerade sehen, haben Sie in der Vorschau noch den Originalzustand. Wenn Sie die Gerade am oberen rechten Punkt anfassen und nach links verschieben, bekommen Sie eine lineare Kontrastspreizung. Eine Durchbiegung der Kurve nach oben führt ebenso zu einem helleren und kontrastverstärkten Bild:</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-dbe247b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="dbe247b" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1abbf80" data-id="1abbf80" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-55d1ae5 elementor-widget elementor-widget-image" data-id="55d1ae5" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="768" height="328" src="https://progpi.de/wp-content/uploads/2020/08/Gimp_Gammakorrektur_Kurvenwerkzeug-768x328.png" class="attachment-medium_large size-medium_large wp-image-3403" alt="Umverteilung der Histogrammwerte" srcset="https://progpi.de/wp-content/uploads/2020/08/Gimp_Gammakorrektur_Kurvenwerkzeug-768x328.png 768w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Gammakorrektur_Kurvenwerkzeug-300x128.png 300w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Gammakorrektur_Kurvenwerkzeug-1024x437.png 1024w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Gammakorrektur_Kurvenwerkzeug.png 1336w" sizes="(max-width: 768px) 100vw, 768px" />											<figcaption class="widget-image-caption wp-caption-text">Eine Gammakorrektur hellt dunkle Bereiche auf</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-29a7cb7 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="29a7cb7" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f4815dd" data-id="f4815dd" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-c59de51 elementor-widget elementor-widget-text-editor" data-id="c59de51" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Da Sie hier die Kurvenform manuell festlegen, handelt es sich streng genommen nicht um eine Gammakorrektur. Aber auf alle Fälle gibt es (zumindest intern in GIMP) eine Transformationstabelle die pro Farbkanal 256 neue Werte genau eines Farbkanals definiert. Wenn Sie im GIMP-Dialog <b>Farbkurven korrigieren</b> „Kanal Wert“ sehen, dann werden dabei alle drei Farbkanäle R,G,B zugleich verändert. Sie können dort z.B. auch den Kanal „grün“ auswählen und somit nur eine Farbkomponente verändern. Im Menü unter „Farben/Automatisch“ bietet GIMP „Kontrastspreizung“ sowie „Kontrastspreizung (HSV)“ an.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-488d906 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="488d906" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4e9eb8f" data-id="4e9eb8f" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-72c06d0 elementor-widget elementor-widget-image" data-id="72c06d0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="768" height="335" src="https://progpi.de/wp-content/uploads/2020/08/Gimp_Farben_Automatisch-768x335.png" class="attachment-medium_large size-medium_large wp-image-3404" alt="Kontrastspreizung mit GIMP" srcset="https://progpi.de/wp-content/uploads/2020/08/Gimp_Farben_Automatisch-768x335.png 768w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Farben_Automatisch-300x131.png 300w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Farben_Automatisch.png 981w" sizes="(max-width: 768px) 100vw, 768px" />											<figcaption class="widget-image-caption wp-caption-text">Operationen im GIMP Menü</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a22ef60 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a22ef60" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b6daae2" data-id="b6daae2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-126cc5b elementor-widget elementor-widget-text-editor" data-id="126cc5b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In beiden Fällen wird das Histogramm gestreckt (GIMP normiert allgemeingültig auf 0.0 bis 1.0 als Wertebereich) und man erhellt so oft ein schöneres Bild. Bei einem 24 Bit Farbbild hat jeder Farbkanal 8 Bit, was 256 Stufen der Transformationstabelle entspricht. Im C++ Interface von OpenCV kann die Transformationstabelle für einen 8-Bit Kanal so programmiert werden:</p>
<pre>unsigned char lut[256];<br />for (int i = 0; i &lt; 256; i++) // Build look up table<br />{<br /> lut[i] = saturate_cast(pow((float)(i / 255.0), gamma) * 255.0f);<br />}</pre>
<p>Da hier<strong> pow(i/255)</strong> mit<strong> gamma</strong> als Exponent verwendet wird, ist es eine Gammakorrektur. Und exemplarisch kann das Resultat für einen Kanal (exemplarisch aus RGB) so aussehen:</p>
<p><span style="color: #0000ff;">lut[ 11]= 13  delta= 2</span><br /><span style="color: #0000ff;">lut[ 30]= 39 delta= 9 </span><br /><span style="color: #0000ff;">lut[115]=140 delta=25</span><br /><span style="color: #0000ff;">lut[128]=153 delta=25 </span><br /><span style="color: #0000ff;">lut[180]=197 delta=17 </span><br /><span style="color: #0000ff;">lut[253]=254 delta= 1</span></p>
<p>Dabei entspricht i der horizontalen Achse im Histogramm und lut[i] der vertikalen Achse. Nach Anwendung dieser Tabelle auf mindestens einen Farbkanal kommt es zu einer Umverteilung im Histogramm, wobei es immer einen Punkt der maximalen Kurvendurchbiegung (maximales delta) gibt. Bei einer reinen Aufhellung ist delta positiv und konstant (Die Gerade wäre nach oben verschoben). Ein zu hoher Wert für delta bzw. lut[i] kann zu unschönen Überstrahlungen im Bild führen. Die Anwendung der LookUp Tabelle lut[i] sieht so aus:</p>
<pre>MatIterator_ it, end;<br />for (it = out.begin(), end = out.end(); it != end; it++)<br />{<br /> (*it)[0] = lut[((*it)[0])]; // blue<br /> (*it)[1] = lut[((*it)[1])]; // green<br /> (*it)[2] = lut[((*it)[2])]; // red<br />}</pre>
<p>Alle drei Komponenten der OpenCV Matrix out bekommen so neue Werte.<br />Bei einer reinen Kontrastverstärkung ist lut[i] linear und damit eine reine Multiplikation (die Steigung der Gerade wird angehoben). Eine rein lineare Kontrastspreizung kann man in OpenCV allerdings auch einfacher bekommen :</p>
<pre>Mat imgNorm; // für das kontrastverstärkte Bild<br />normalize(img3x8.clone(),imgNorm,0.0,255, NORM_MINMAX); <br />destname = outpath24s + nrbase + "_NormMinMax.jpg"; <br />imwrite(destname, imgNorm);</pre>
<p>Dabei ist img3x8 das farbige JPEG-Eingangsbild und imgNorm wird als kontrastgespreiztes neues Bild gespeichert. Bei der grünen Schlange handelt es sich übrigens um ein unterbelichtetes Dia, das per Kamerascanner digitalisiert wurde. In GIMP sieht die lineare Kontrastspreizung so aus:</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-eb86fee elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="eb86fee" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1f2c4dd" data-id="1f2c4dd" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-c11b6ab elementor-widget elementor-widget-image" data-id="c11b6ab" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="768" height="555" src="https://progpi.de/wp-content/uploads/2020/08/Gimp_Kontrastspreizung_linear_Schlange-768x555.png" class="attachment-medium_large size-medium_large wp-image-3399" alt="Dehnung des Histogramms" srcset="https://progpi.de/wp-content/uploads/2020/08/Gimp_Kontrastspreizung_linear_Schlange-768x555.png 768w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Kontrastspreizung_linear_Schlange-300x217.png 300w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Kontrastspreizung_linear_Schlange-1024x740.png 1024w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Kontrastspreizung_linear_Schlange.png 1209w" sizes="(max-width: 768px) 100vw, 768px" />											<figcaption class="widget-image-caption wp-caption-text">Lineare Kontrastspreizung mit GIMP</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a3cbdec elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a3cbdec" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-20c7c9d" data-id="20c7c9d" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d5cbd1d elementor-widget elementor-widget-text-editor" data-id="d5cbd1d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Nach der Kontrastspreizung liegt der hellste Histogrammpunkt nicht mehr unter 128 sondern über 250. Im Histogramm sind durch die Kontrastspreizung Lücken entstanden. Das Bild ist jetzt signifikant heller – und auch heller als das Dia wirkt. Aber Dias werden meist im abgedunkelten Raum vorgeführt, was eine Dunkeladaption der Augen und damit eine bessere Wahrnehmung dunkler Bildpartien bewirkt. In Helligkeit und Kontrast ausgeglichen wirkt solch ein Bild erst nach einer zusätzlichen Gammakorrektur:</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-c65c326 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c65c326" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-bc0ac86" data-id="bc0ac86" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-2e6f15f elementor-widget elementor-widget-image" data-id="2e6f15f" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="768" height="460" src="https://progpi.de/wp-content/uploads/2020/08/Gimp_Histogramm_linear_log-768x460.png" class="attachment-medium_large size-medium_large wp-image-3405" alt="Bildaufhellung durch Gammakorrektur" srcset="https://progpi.de/wp-content/uploads/2020/08/Gimp_Histogramm_linear_log-768x460.png 768w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Histogramm_linear_log-300x180.png 300w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Histogramm_linear_log-1024x613.png 1024w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Histogramm_linear_log.png 1422w" sizes="(max-width: 768px) 100vw, 768px" />											<figcaption class="widget-image-caption wp-caption-text">Gammakorrektur bei schon gespreiztem Histogramm</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-879177f elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="879177f" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-00345ab" data-id="00345ab" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-7dd52ec elementor-widget elementor-widget-text-editor" data-id="7dd52ec" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Beachten Sie bitte auch, daß sich seltener vorkommende Werte nur in einem logarithmischen Histogramm erkennen lassen. Beachtet man das nicht, besteht die Gefahr bestimmte Bildteile auf die Extremwerte 0 oder 255 zu setzen. Manchmal ist dieser Effekt aber gewollt, denn übersteigerte Kontraste und satte Farben können zu einem spannenden Bild führen:</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-44c1f59 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="44c1f59" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-16d29cc" data-id="16d29cc" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-fdc33b2 elementor-widget elementor-widget-image" data-id="fdc33b2" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="768" height="328" src="https://progpi.de/wp-content/uploads/2020/08/Gimp_kräftige_Farben_hoher_Kontrast-768x328.png" class="attachment-medium_large size-medium_large wp-image-3407" alt="Kontrastanhebung" srcset="https://progpi.de/wp-content/uploads/2020/08/Gimp_kräftige_Farben_hoher_Kontrast-768x328.png 768w, https://progpi.de/wp-content/uploads/2020/08/Gimp_kräftige_Farben_hoher_Kontrast-300x128.png 300w, https://progpi.de/wp-content/uploads/2020/08/Gimp_kräftige_Farben_hoher_Kontrast-1024x437.png 1024w, https://progpi.de/wp-content/uploads/2020/08/Gimp_kräftige_Farben_hoher_Kontrast.png 1336w" sizes="(max-width: 768px) 100vw, 768px" />											<figcaption class="widget-image-caption wp-caption-text">Kontrastanhebung über eine S-förmige Kurve</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-7bfd41c elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="7bfd41c" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-78716c5" data-id="78716c5" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-e402c94 elementor-widget elementor-widget-text-editor" data-id="e402c94" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Solch ein Effekt wird erreicht, indem man durch eine S-förmige Histogrammkurve dunkle und helle Farbtöne fast in die Sättigung abgleiten lässt. Sie sehen an diesem Beispiel, daß es optimale Bilder im Rahmen einer Bildbearbeitung eigentlich nicht gibt. Wie beim Farbempfinden können die Ansichten über „Schönheit“ je nach Betrachter recht unterschiedlich ausfallen. Und nicht jedes Motiv wirkt bei überhöhten Kontrasten gut. Was man bei der Filmemulsion die Gradationskurve nennt, wird heute in der Digitalkamera durch das Belichtungsprogramm vorgegeben.</p>
<p>Bei manchen Bildern ist eine <strong>Gammakorrektur</strong> der einzige Weg, um aus zu dunklen Bildteilen noch etwas Information herauszuholen:</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-9521b3c elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="9521b3c" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-52f1497" data-id="52f1497" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-af9c02b elementor-widget elementor-widget-image" data-id="af9c02b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="768" height="441" src="https://progpi.de/wp-content/uploads/2020/08/Gimp_Gamma_Brücke_dunkel-768x441.png" class="attachment-medium_large size-medium_large wp-image-3402" alt="Aufhellung durch Gammakorrektur" srcset="https://progpi.de/wp-content/uploads/2020/08/Gimp_Gamma_Brücke_dunkel-768x441.png 768w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Gamma_Brücke_dunkel-300x172.png 300w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Gamma_Brücke_dunkel-1024x588.png 1024w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Gamma_Brücke_dunkel-1536x882.png 1536w, https://progpi.de/wp-content/uploads/2020/08/Gimp_Gamma_Brücke_dunkel.png 1609w" sizes="(max-width: 768px) 100vw, 768px" />											<figcaption class="widget-image-caption wp-caption-text">Die Gammakorrektur macht Unsichtbares sichtbar</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-7cdaa50 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="7cdaa50" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e04571b" data-id="e04571b" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-ded867e elementor-widget elementor-widget-text-editor" data-id="ded867e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Das Originalbild ist hier in der rechten oberen Ecke eingeblendet und es ist dort nur ein kleiner Teil des Brückenstegs erkennbar. Das gilt bei diesem Bild auch dann, wenn Sie eine lineare Kontrastspreizung in GIMP oder OpenCV ausprobieren. Der einzige Weg um die dunkleren Bildteile stärker hervortreten zu lassen (ohne Überstrahlungen zu riskieren) ist eine Gammakorrektur. <strong>In OpenCV kann man diesen Vorgang auch automatisch für beliebige Bilderstapel durchführen</strong> – Ein Vorgang der in GIMP nur manuell durchführbar und auch mit Script-Fu nicht so einfach automatisierbar ist.<br />Basis ist auf jeden Fall eine gut programmierte Histogrammauswertung für alle Farbkanäle. Eine Speicherung aller Transformationstabellen lut[i] ermöglicht die spätere Anwendung auf Bilder in höherer Auflösung.</p>
<p>Die mühsame manuelle Einstellung in GIMP hat aber noch einen Nachteil: Man sieht immer nur <b>ein</b> Bild und kann nicht die Wirkung unterschiedlicher Bildvarianten in Bezug auf Farbe, Kontrast und Helligkeit  miteinander vergleichen. Die Umsetzung erfolgt dreistufig:</p>
<ol>
<li><span style="color: #000080;">Ein Generatorprogramm verarbeitet den Bilderstapel und erzeugt mehrere Bildvarianten pro Bild<br /></span></li>
<li><span style="color: #000080;">Ein Viewer zeigt die beiden Bildvarianten und zusätzlich ein neues, speicherbares Mischbild an  </span></li>
<li><span style="color: #000080;">Die individuell pro Bild gespeicherten Transformationstabellen und Parameter werden automatisch auf den gesamten Bilderstapel bei voller Auflösung angewandt. (Batchverarbeitung, ohne manuellen Eingriff) <br /></span></li>
</ol>
<p>In OpenCV sieht solch ein Mixer (<span style="color: #000080;">also Stufe2</span>) für Bilder so aus:</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e43b8ac elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e43b8ac" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d960437" data-id="d960437" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-561aad0 elementor-widget elementor-widget-image" data-id="561aad0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="768" height="561" src="https://progpi.de/wp-content/uploads/2020/08/OpenCV_Mixer_gamma_whitebalance-768x561.png" class="attachment-medium_large size-medium_large wp-image-3400" alt="Gewichtete Mischung von Bildern" srcset="https://progpi.de/wp-content/uploads/2020/08/OpenCV_Mixer_gamma_whitebalance-768x561.png 768w, https://progpi.de/wp-content/uploads/2020/08/OpenCV_Mixer_gamma_whitebalance-300x219.png 300w, https://progpi.de/wp-content/uploads/2020/08/OpenCV_Mixer_gamma_whitebalance-1024x748.png 1024w, https://progpi.de/wp-content/uploads/2020/08/OpenCV_Mixer_gamma_whitebalance.png 1485w" sizes="(max-width: 768px) 100vw, 768px" />											<figcaption class="widget-image-caption wp-caption-text">OpenCV-Mixer mit Farb-Histogrammen</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e53a689 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e53a689" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1a99e93" data-id="1a99e93" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-eb79620 elementor-widget elementor-widget-text-editor" data-id="eb79620" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Die oberen beiden Bilder ergeben sich aus der unterschiedlichen Verarbeitung bezüglich Gammakorrektur und Weissabgleich. Das mittige untere Mischbild wird nach dem Prozentsatz des Trackbars zusammengesetzt. Beim hier abgebildeten Lama hat die Gammakorrektur (Bild links oben) die gewünschte Aufhellung des Halses bewirkt. Allerdings wird dabei auch das Kamerarauschen auf dem dunklen Hintergrund verstärkt. Das Bild rechts oben ist ein JPEG ohne Gammakorrektur. Der beste Kompromiss ist hier das Mischbild. Die beiden Histogramme zeigen die jeweilige Verteilung der Grauwerte und Farben mit 50% logarithmischer Darstellung. Im linken Histogramm ist das farbige Sensorrauschen für den dunklen Bildhintergrund gut erkennbar. Für die Steuerung gibt es einen eigenen Dialog mit dem alle Bilder verarbeitet werden können. Der OpenCV-Mixer kann mit herunterskalierten Bildern arbeiten, da alle abgespeicherten Transformationstabellen sowie das Mischungsverhältnis in Stufe 3 verwendet werden.  So entsteht ein kompletter Workflow für Digitalbilder / gescannte Dias oder Negative.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/gimp-und-opencv/">GIMP und OpenCV</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Quiz, Videos, Galerie, Raspberry Pi Basiswissen</title>
		<link>https://progpi.de/quiz-videos-galerie/</link>
		
		<dc:creator><![CDATA[Harald Schmidt]]></dc:creator>
		<pubDate>Mon, 02 Jul 2018 07:21:19 +0000</pubDate>
				<category><![CDATA[Basiswissen]]></category>
		<category><![CDATA[Dateimanager]]></category>
		<category><![CDATA[Konsole]]></category>
		<category><![CDATA[Quiz]]></category>
		<category><![CDATA[RPi-Desktop]]></category>
		<category><![CDATA[TightVNC]]></category>
		<guid isPermaLink="false">https://progpi.de/?p=952</guid>

					<description><![CDATA[<p>Das Quiz gibt Tipps für den Umgang mit dem Raspberry Pi. Mit dem Pi 3 gemachte Videos erklären als Screencast die Software zum Buch. Die Galerie zeigt einige Bilder aus dem Buch als Themenüberblick. RPI-Desktop, Dateimanager, Konsole, TightVNC, ASCII-GUI &#8211; Bei Basiswissen erfahren Sie mehr. Der ProgPi-Blog enthält Artikel zu Themen rund um den Raspberry [&#8230;]</p>
<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/quiz-videos-galerie/">Quiz, Videos, Galerie, Raspberry Pi Basiswissen</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<ul class="wp-block-list"><li>Das <a href="https://progpi.de/quiz/"><strong><u>Quiz</u></strong></a> gibt Tipps für den Umgang mit dem Raspberry Pi.  </li><li>Mit dem Pi 3 gemachte <a href="https://progpi.de/videos/"><strong><u>Videos</u></strong></a>  erklären als Screencast die Software zum <a href="http://files.hanser.de/Files/Article/ARTK_LPR_9783446453425_0001.pdf" target="_blank" rel="noopener"><strong><u>Buch</u></strong></a>.  </li><li>Die <a href="https://progpi.de/galerie/"><strong><u>Galerie</u></strong></a> zeigt einige Bilder aus dem Buch als Themenüberblick. </li><li>RPI-Desktop, Dateimanager, Konsole, TightVNC, ASCII-GUI &#8211; Bei <a href="https://progpi.de/basiswissen/"><strong><u>Basiswissen</u></strong></a> erfahren Sie mehr. </li><li>Der <strong><u><a href="https://progpi.de/">ProgPi-Blog</a></u></strong> enthält Artikel zu Themen rund um den Raspberry Pi</li></ul>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="768" height="244" src="https://progpi.de/wp-content/uploads/2022/08/FAQ_03_USB_OTG-768x244.jpg" alt="" class="wp-image-897" srcset="https://progpi.de/wp-content/uploads/2022/08/FAQ_03_USB_OTG-768x244.jpg 768w, https://progpi.de/wp-content/uploads/2022/08/FAQ_03_USB_OTG-300x95.jpg 300w, https://progpi.de/wp-content/uploads/2022/08/FAQ_03_USB_OTG-1024x326.jpg 1024w, https://progpi.de/wp-content/uploads/2022/08/FAQ_03_USB_OTG.jpg 1208w" sizes="(max-width: 768px) 100vw, 768px" /><figcaption>Fragen und Antworten aus dem Quiz<br></figcaption></figure>



<p>Im Raspberry Pi Quiz dürfen Sie einige Begriffe erraten und erhalten auch ein paar Tipps zur anschließbaren Hardware.</p>
<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/quiz-videos-galerie/">Quiz, Videos, Galerie, Raspberry Pi Basiswissen</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Raspberry Pi programmieren mit C/C++ und Bash</title>
		<link>https://progpi.de/raspberry-pi-programmieren-mit-c-c-und-bash/</link>
		
		<dc:creator><![CDATA[Harald Schmidt]]></dc:creator>
		<pubDate>Sun, 03 Jun 2018 12:21:00 +0000</pubDate>
				<category><![CDATA[Basiswissen]]></category>
		<category><![CDATA[Bildverarbeitung]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[Qt]]></category>
		<guid isPermaLink="false">https://progpi.de/?p=34</guid>

					<description><![CDATA[<p>Der Hanser Verlag veröffentlicht das mit über 800 Seiten bisher umfangreichste Buch aus der Reihe &#160;#makersDOIT. &#160;Eine Leseprobe mit 67 Seiten finden Sie hier: http://files.hanser.de/Files/Article/ARTK_LPR_9783446453425_0001.pdf Sie lernen dabei den Raspberry Pi mit Bash zu programmieren. Das bei Raspbian verwendete Kommando &#8222;raspi-config&#8220; ist übrigens nichts anders, als ein whiptail-Dialog der auf Bash beruht. Bash ist also [&#8230;]</p>
<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/raspberry-pi-programmieren-mit-c-c-und-bash/">Raspberry Pi programmieren mit C/C++ und Bash</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Der Hanser Verlag veröffentlicht das mit über 800 Seiten bisher umfangreichste Buch aus der Reihe &nbsp;#makersDOIT. &nbsp;Eine Leseprobe mit 67 Seiten finden Sie hier:</p>



<p class="has-luminous-vivid-amber-background-color has-background"><a href="http://files.hanser.de/Files/Article/ARTK_LPR_9783446453425_0001.pdf" target="_blank" rel="noopener">http://files.hanser.de/Files/Article/ARTK_LPR_9783446453425_0001.pdf</a></p>



<p>Sie lernen dabei den Raspberry Pi mit Bash zu programmieren. Das bei Raspbian verwendete Kommando  &#8222;<strong>raspi-config</strong>&#8220; ist übrigens nichts anders, als ein <a href="https://en.wikibooks.org/wiki/Bash_Shell_Scripting/Whiptail" target="_blank" rel="noopener"><strong><u>whiptail</u></strong></a>-Dialog der auf Bash beruht. Bash ist also ein fester Bestandteil aller Linux Betriebssysteme.  Aber natürlich ist auch mit C/C++ und <strong><a href="https://progpi.de/der-qtcreator-auf-dem-raspberry-pi/"><u>Qt</u></a></strong> programmierte Software dabei. Raspberry Pi programmieren macht Spaß, denn schon bald haben Sie ihren eigenen Desktop auf dem Raspberry Pi und schnell austauschbare SD-Karten sind für die Einstieg ideal. Auch weil der inzwischen verfügbare <a href="https://progpi.de/raspberry-pi-imager-debian-bullseye-backup-mount-restore/">Raspberry Pi Imager</a> die Erstellung der Micro-SD-Karte so leicht macht wie nie zuvor&#8230;.</p>



<p>Einige Grundbegriffe werden auch hier im Bereich <a href="https://progpi.de/basiswissen/"><strong>Basiswissen</strong></a> erläutert &#8211; Ein guter Startpunkt.</p>



<p>Die Software zum Buch wurde im August 2022 überarbeitet und liegt im <strong><a href="https://progpi.de/download/raspiprogbashcpp/">Download-Bereich</a>.</strong> Die Änderungen betreffen die Kompatibilität zu Buster/Bullseye, raspistill/libcamera oder auch WiringPi.</p>



<p></p>



<p><strong>Aus dem Vorwort:</strong></p>



<p><em>Der  Raspberry  Pi  ist  zum  Computer  mit  Kultstatus  geworden.  Das  mag  einerseits  an  der  umfangreichen Literatur liegen, die für dieses Gerät verfügbar ist. Ganz sicher ist dafür aber auch das von der Raspberry Pi Foundation getragene Konzept verantwortlich, auch die Hardware als Open Source zu betrachten. So konnte ein kleiner Computer entstehen, der sich als Steuerungscomputer  für  Elektronikbastler  einsetzen  lässt  und  dabei  nur  wenig  Energie  verbraucht. Softwarebasis des Pi sind Betriebssysteme, die ihre Wurzeln in Linux haben. Am bekanntesten ist dabei vielleicht Raspbian, das aus einer Debian-Linux-Distribution entwickelt wurde. Dessen  Bedienoberfläche  ist  einfach  aufgebaut  und  ähnelt  der  klassischen  Oberfläche  von  Windows XP.</em></p>



<p><em>Pi ist aber auch ein Benutzername (pi@raspi3) – und mit dessen Augen werden Sie in diesem Buch spannende Blicke auf Ihren Mini-PC und seine Umgebung werfen. Dieses Buch führt Sie zugleich auch in die Welt zweier recht unterschiedlicher Programmiersprachen ein:</em></p>



<ul class="wp-block-list"><li><em>Bash: für Ablaufsteuerungen und als Programmstarter mit Benutzeroberfläche</em></li><li><em>C/C++: für alle Fälle, in denen man tiefer einsteigen will und in denen Geschwindigkeit wichtig ist</em></li></ul>
<p>Der Beitrag <a rel="nofollow" href="https://progpi.de/raspberry-pi-programmieren-mit-c-c-und-bash/">Raspberry Pi programmieren mit C/C++ und Bash</a> erschien zuerst auf <a rel="nofollow" href="https://progpi.de">ChatGPT, KI und Software auf dem Raspberry Pi</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
