Version [80865]
Dies ist eine alte Version von ComputerBasierteIntelligenzVorverarbeitung erstellt von mstruening am 2017-07-03 19:44:57.
Kennzeichenerkennung
Datenvorverarbeitung in MATLAB
Vorbereitung
Für dieses Tutorium wurde Ihnen ein Archiv mit folgenden Inhalten bereitgestellt:
- 100 Bilddateien von Kraftfahrzeugen mit mehr oder weniger erkennbaren Kennzeichen
- Zugehörige INI-Dateien
- Das Werkzeug "KFZ-Expert"
1. Manuelle Vorverarbeitung
Als erstes müssen alle 100 Bilddateien von Ihnen mit dem Programm "KFZ-Expert" bearbeitet werden. "KFZ-Expert" ermöglicht Ihnen das Setzen der ROI und des erwarteten Klassifikationsergebnisses.2. Einlesen der Bild- und INI-Dateien
Zuerst soll die Vorgehensweise der Vorverarbeitung an einem einzigen Bild demonstriert werden. Für das maschinelle Lernen werden die folgenden Schritte später an hunderten von Bildern wiederholt.% Bilder und zugehörige INI-Dateien einlesen
%Dateipfad Eingabedaten
PATH_inputImg = ['data\img00' num2str(dataIndex)];
%Dateipfad Ausgabebild
PATH_outputImg = ['graf\img00' num2str(dataIndex)];
%Eingabebild einlesen
IMG_1_input = imread([PATH_inputImg '.jpg']);
%Eingabebild in Subplot oben-links eintragen
close all, subplot(2,3,1), imshow(IMG_1_input), hold on
%Cell Array für INI-Read konstruieren
% Mit Funktion inifile(iniFileName, mode, modeParams)
% Jede Zeile in CellArray 'readParams' muss enthalten:
% Section, Subsection, Key, Format(s:string, d:double)
%Reihenfolge: Kennzeichentext, x-Koordinaten, y-Koordinaten
section = 'Plate';
readParams = {section,'','name','s';
section,'','x1','d';
section,'','x2','d';
section,'','x3','d';
section,'','x4','d';
section,'','y1','d';
section,'','y2','d';
section,'','y3','d';
section,'','y4','d'};
%INI-Read ausführen
%Ergebnisse liegen in selber Reihenfolge wie mit readParams angefordert
iniValues = inifile([PATH_inputImg '.ini'], 'read', readParams);
%Erste Zeile: Kennzeichentext
plateText = iniValues{1,1};
%Zeile 2-5: x-Koordinaten
x = cell2mat(iniValues(2:5));
%Zeile 6-9: y-Koordinaten
y = cell2mat(iniValues(6:9));
%Polygon-Koordinaten in Original-Bild eintragen
plot(x, y,'g*')
%Bildindex und Kennzeichen als Titel
title(['Bild: ' num2str(dataIndex) ' ' plateText])
%Dateipfad Eingabedaten
PATH_inputImg = ['data\img00' num2str(dataIndex)];
%Dateipfad Ausgabebild
PATH_outputImg = ['graf\img00' num2str(dataIndex)];
%Eingabebild einlesen
IMG_1_input = imread([PATH_inputImg '.jpg']);
%Eingabebild in Subplot oben-links eintragen
close all, subplot(2,3,1), imshow(IMG_1_input), hold on
%Cell Array für INI-Read konstruieren
% Mit Funktion inifile(iniFileName, mode, modeParams)
% Jede Zeile in CellArray 'readParams' muss enthalten:
% Section, Subsection, Key, Format(s:string, d:double)
%Reihenfolge: Kennzeichentext, x-Koordinaten, y-Koordinaten
section = 'Plate';
readParams = {section,'','name','s';
section,'','x1','d';
section,'','x2','d';
section,'','x3','d';
section,'','x4','d';
section,'','y1','d';
section,'','y2','d';
section,'','y3','d';
section,'','y4','d'};
%INI-Read ausführen
%Ergebnisse liegen in selber Reihenfolge wie mit readParams angefordert
iniValues = inifile([PATH_inputImg '.ini'], 'read', readParams);
%Erste Zeile: Kennzeichentext
plateText = iniValues{1,1};
%Zeile 2-5: x-Koordinaten
x = cell2mat(iniValues(2:5));
%Zeile 6-9: y-Koordinaten
y = cell2mat(iniValues(6:9));
%Polygon-Koordinaten in Original-Bild eintragen
plot(x, y,'g*')
%Bildindex und Kennzeichen als Titel
title(['Bild: ' num2str(dataIndex) ' ' plateText])
CategoryInfoTutorien