WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Umrisse Blinken lassen

 

Anettchen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2013, 20:18     Titel: Umrisse Blinken lassen
  Antworten mit Zitat      
Hallo,

ich arbeite mit Matlab erst seit paar Tagen und komme jetzt nicht mehr weiter.

Ich Habe durch Kantenerkennung ein gezeichnetes Bild erkennen lassen und die erkannten Konturen auf das Originalbild gelegt so das man das erkannte Objekt sieht. Das war soweit kein Problem da vieles in der Dokumentation sehr gut beschrieben ist.

Ich würde Jetzt gerne die erkannten Kanten (im Bild Rot) Blinken lassen, um dem Nutzer es deutlich zu machen. Und die Kanten sollen Dicker dargestellt werden.

Im Forum habe ich was zu diesem Thema gefunden leider funktioniert das nicht bei mir.

Code:



%Bild auswahl
bild = uigetfile({'*.jpg';'*.png';'*tif'},'Bitte Bildatei auswählen');



BWbild =(rgb2gray(imread(bild)));
test = logical(BWbild);
%imshow(test);
%sobelfilter anwenden mit Faktor (segmentierung des Bildes)
edges = edge(BWbild, 'sobel', 0.05);
%imagesc(edges);


strel90 = strel('line', 3, 90);
%bestimmt die wie viel ausgefüllt wird
strel0 = strel('line', 3, 0);


BWkontur = imdilate(edges, [strel90 strel0]);
%figure, imshow(BWkontur), title('erweiterung der Maske');


BWfuellen = imfill(BWkontur, 'holes');
%figure, imshow(BWfuellen);
%title('Bildmaske gefüllt');

%Objekte die nicht vollständig auf dem Bild zu sehen sind werden
%gelöscht(ausgefüllt)
BWremove = imclearborder(BWfuellen,4);
%figure, imshow(BWremove), title('Fehlerhafte Objekte Löschen');


segmentedD = strel('diamond',2);
BWfertig = imerode(BWremove,segmentedD);
BWfertig = imerode(BWfertig,segmentedD);
BWfertig = imerode(BWfertig,segmentedD);
BWfertig = imerode(BWfertig,segmentedD);
%figure, imshow(BWfertig), title('Geglätetes Bild');

%Maske auf Origenalbild anwenden
BWumriss = bwperim(BWfertig);
umrisse = BWbild;
umrisse(BWumriss) = 255;
%figure, imshow(umrisse), title('Umrisse original Bild');

 T = flash(umrisse,'Color',[1 0 0],[1 1 1],inf)


imshow(T);

 


würde mich über eure Hilfe freuen

LG
Anette

Testbild.jpg
 Beschreibung:

Download
 Dateiname:  Testbild.jpg
 Dateigröße:  85.03 KB
 Heruntergeladen:  806 mal


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 12.12.2013, 07:46     Titel:
  Antworten mit Zitat      
Moin,

um etwas zum Blinken zu bringen, gibt es eine ganz einfache Methode. Man zeigt in einem kurzen Intervall 2 Bilder, wobei das 2. Bild die Stellen hervorhebt, die gezeigt werden sollen:

Code:
for i = 1:5  % 5x Blinken
imshow(X)
pause(0.2)  % Zeit einstellen
imshow(Y)   % die Stellen hervorheben
pause(0.2)
%%imshow(Z)   % auch das ist natürlich möglich. 3. Bild
%%pause(0.2)
end




Um die roten Stellen zum Blinken zu bringen, gibt es wiederum unterschiedliche Wege. Ein Bild zeigt die roten Stellen und ein Bild zeigt als Alternative schwarz bzw. weiß oder ähnliches. Soll das ganze dezenter ausfallen, können beide Bilder Rot beinhalten, wobei ein Rotton heller und der andere dunkler eingestellt ist.

Um die Stellen "dicker" darzustellen, würde ich einen Bildausschnitt machen, das Bild ein paar Pixel vergrößern und wieder einpassen. So bleibt die Form exakt erhalten. Man kann auch probieren, das gesamte Bild ein paar Pixel zu vergrößern. Das muss im Einzelfall entschieden werden.

Viele Grüße - Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Anettchen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2013, 10:03     Titel: Kanten Blinken lassen
  Antworten mit Zitat      
Dankeschön das hat mir weiter geholfen.
Verschoben: 12.12.2013, 10:59 Uhr von denny
Von Script-Ecke nach Bildverarbeitung
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.