Augmented Reality: Wörterbuch: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 36: Zeile 36:
bild_bw = im2bw(bild_grau,thresh); % Umwandeln des Graustufenbildes in ein b/w-Bild  in Abhängigkeit des vorherbestimmten Schwellenwertes  
bild_bw = im2bw(bild_grau,thresh); % Umwandeln des Graustufenbildes in ein b/w-Bild  in Abhängigkeit des vorherbestimmten Schwellenwertes  
bild_bw_canny = edge(bild_bw, 'Canny'); % Kantenbild durch Canny   
bild_bw_canny = edge(bild_bw, 'Canny'); % Kantenbild durch Canny   
</source>
=== 3.Schritt: Wichtige Region finden ===
<source lang="matlab">
%% Roi erzeugen / finden  und Bild reduzieren
bild_bw_roi = imfill(bild_bw_canny,'holes');% Hier werden alle schwarzen Bereiche, die komlett von weißen Bereichen umgeben sind, auf weiß gesetzt und damit zu dem Objekt hinzugefügt
bild_bw_roi = bwareaopen(bild_bw_roi,6000,4);
%bild_bw_roi = edge(bild_bw_roi,'log');
bild_bw_roi = imfill(bild_bw_roi,'holes');
bild_grau_roi = bild_grau .* uint8(bild_bw_roi);% Grau bild auf ROI reduzieren
stats = regionprops(bild_bw_roi); % weiße Regionen finden
</source>
</source>



Version vom 19. Juni 2014, 10:00 Uhr

Autor: Christoph Wiegand
Betreuer: Prof. Schneider

Motivation

Word Lens ist ein geniales App, welches Schilder in alle Weltsprachen übersetzt.

Ziel

Programmieren Sie eine Schildererkennung und Übersetzung in Deutsch.

Aufgabe

  1. Erkennen Sie die Schrift auf den Schildern
  2. Ersetzen Sie diese Schrift perspektivisch durch eine passende deutsche Beschriftung im Videobild.
  3. Präsentieren Sie Ihr Ergebnis in der Form des Videos von Word Lense.

Lösung

Diese Lösung übersetzt Wörter in Beispielbildern. Diese Bilder zeigen rechteckige Schilder mit Text.

1.Schritt: Einlesen der Daten

%% Bild und Daten einlesen
buchstaben_einlesen;
load ('vokabeln.mat') ;
bild_org = imread('IMAG0460.jpg'); % Einlesen des Bildes

2.Schritt: Vorbereiten der Daten

%% Bilddaten umwandeln Ergebnis = Kanten Bild  
bild_grau = rgb2gray(bild_org); % umwandeln des Bildes in ein Graustufenbild 
bild_grau= imadjust(bild_grau); % Kontrast erhöhen 
thresh = graythresh(bild_grau); % automatische Bestimmung eines Schwellenwertes, um Vorder- und Hintergrund zu unterscheiden 
bild_bw = im2bw(bild_grau,thresh); % Umwandeln des Graustufenbildes in ein b/w-Bild  in Abhängigkeit des vorherbestimmten Schwellenwertes 
bild_bw_canny = edge(bild_bw, 'Canny'); % Kantenbild durch Canny

3.Schritt: Wichtige Region finden

%% Roi erzeugen / finden  und Bild reduzieren 
bild_bw_roi = imfill(bild_bw_canny,'holes');% Hier werden alle schwarzen Bereiche, die komlett von weißen Bereichen umgeben sind, auf weiß gesetzt und damit zu dem Objekt hinzugefügt 
bild_bw_roi = bwareaopen(bild_bw_roi,6000,4);
%bild_bw_roi = edge(bild_bw_roi,'log');
bild_bw_roi = imfill(bild_bw_roi,'holes');
bild_grau_roi = bild_grau .* uint8(bild_bw_roi);% Grau bild auf ROI reduzieren
stats = regionprops(bild_bw_roi); % weiße Regionen finden

Siehe auch

Beispiele für Warnschilder

Weblinks


→ zurück zum Hauptartikel: Digitale Signal- und Bildverarbeitung SoSe2014