Verfasst am: 21.07.2016, 11:25
Titel: Entfernen von Hintergrundrauschen
Hallo zusammen,
ich sitze jetzt leider schon länger an einem Problem.
Ich möchte viele Bilder hintereinander auswerten, habe allerdings das Problem, dass in meinen Bildern immer wieder "Fehlinformationen" sind (siehe Anhang "Tropfen mit Verunreinigung" -> größerer Fleck links oben). Da ich die Bilder anschließend bzgl. der Größe und Form der Elipsen/Kreise auswerten möchte, müssen die unzusammenhängenden Fehlinformationen weg.
Bis jetzt sieht mein Code so aus:
Code:
id = filenames(i).name;
Bild = imread(id, 'gif');
erode = bwperim(Bild,26);
soley = edge(erode, 'canny'); %Finden der Umrandungen eines Tropfens
soley = imdilate(soley, strel('disk',2)); %Umranden des Tropfens mit einer Linie von 2 als Dicke, wird danach wieder abgezogen, schließen von Lücken
erode = bwareaopen(soley, 200);
holes = imfill(soley, 'holes'); %Füllen der umrandeten Tropfen mit weiß, dadurch wird eine Erkennung als Ellipse möglich
erode = imerode(holes, strel('disk',2)); % Abziehen der davor hinzugefügen Linie, "Orginalgröße" wird hergestellt
erode = bwareaopen(erode, 200); % entfernt objekte mit weniger als 200 pixel
invert = imcomplement(erode); % invertiert wieder das davor hergestellte Bild zur Verwendung als Bildmaterial
s = regionprops(erode,{'Centroid',...
'MajorAxisLength',...
'MinorAxisLength',...
'Orientation',...
'Eccentricity'});
Im Anhang "Erkennung" sieht man, dass die Fehlinformation auch als Kreis erkannt wird.
Habt ihr irgendwelche Ideen, wie ich das beiseitigt bekomme? Ich hatte vielleicht an die Erkennung von unzusammenhängenden Strukturen gedacht? Allerdings habe ich im Internet nichts gefunden.
Ich wäre euch wirklich dankbar, wenn ihr mir weiterhelfen könntet!
Das weite Fekld der automatisierten Bildverarbeitung ist deshalb so "kompliziert", da es immer eine Art Mustererkennung geben muss. Je noch Komplexität muss auch die Mustererkennung mehr oder weniger komplex sein.
Soll heißen: es gibt keine Methode, die einfach mal so weiß, welches dein gewünschtes Objekt und was Verunreinigungen sind.
Bei sehr kleinen Fehlern, würde man mit imrode und imdilate Erfolge haben, da diese dann einfach verschwinden.
Du könntest Bilder, bei denen mehr als 1 Objekt erkannt wird, separieren und dem Nutzer vor dem Schirm zeigen, mit der Aufforderung anzugeben, welches das Gewünschte Objekt ist.
Wenn du weißt, dass deine gesuchten Objekte immer in einem bestimmten Bereich liegen (Area of Interest), dann kannst du den Suchraum einschränken (bzw. die Bilder gleich zu beginn zuschneiden auf den Bereich, das verringert auch die Rechenzeit).
Ansonsten bleibt nur, das du dir andere Gemeinsamkeiten entweder in den Fehlern oder im gewünschten Objekt suchst und diese frei umsetzt.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.