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

Farberkeenung

 

lynileinchen
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 01.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2010, 16:06     Titel: Farberkeenung
  Antworten mit Zitat      
Hallo,

ich möchte gerne mit Hilfe von Matlab Bereiche nach Farben trennen.

Aktueller Stand: Ich habe Bilder mit blauen und roten Zellen auf einem schwarzen Hintergrund.
Gewünschtes Ergebnis: Zwei Binärbilder, die mir jeweils die blauen bzw. die roten Zellen als weiße Bereiche zeigen.
Das Problem: Die Farben sind leider nicht eindeutig trennbar. Das Blau ist eher ein Lila, was dem Rot sehr ähnelt.

Was ich bis jetzt versucht habe: Bild aus dem RGB Raum in den HSV transformiert. Manuell einen "perfekten" blauen Bereich auswählen und die Durschnittswerte von H, S und V ermitteln. Damit werden jeweils 3 Wertebereich festgelegt. Anschließend wird für jedes Pixel im Bild überprüft, ob seine H, S und V Werte alle in den festgelegten Bereichen liegen. Wenn ja, dann wird dieser Pixel als "blau" (bzw. Wert 1 im Binärbild) definiert. Die Pixel, bei denen min. einer der drei Werte ausserhalb des Bereiches liegt, ist nicht blau und hat im Binärbild den Wert 0.
Anschließend das selbe Verfahren für rote Zellen.

Diese Verfahren ist jedoch sehr stark abhängig, welchen Bereich man als das "perfekte Blau" definiert. Außerdem ist es ebenfalls von der Farbzusammensetzung des gesamten Bildes abhängig.

Kann mir da vllt jemand weiterhelfen oder gibt es andere Ideen?
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 01.02.2010, 18:26     Titel:
  Antworten mit Zitat      
Hallo,

verstehe nicht warum der Blau nicht eindeutig trennbar ist? Meinst du, dass das kein Blau sondern Lila ist?
In RGB, hast du schon Kanäle doch ROT/ GRÜN/ BLAU Kanal?

Code:

A=rand(10,10,3);
figure; imagesc(A);

blau=zeros(size(A));
rot  = zeros(size(A));

rot(:,:,1) = A(:,:,1)
figure; imagesc(rot);

blau(:,:,3)= A(:,:,3)
figure; imagesc(blau);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 03.02.2010, 17:16     Titel:
  Antworten mit Zitat      
Hallo nochmal

da du 3 Farbenkanal hast, kannst du doch LILA, durch Farbwerte bestimmen und dadurch manipulieren

Code:

A=zeros(10,10,3)
% 50 Prozent Rot-Anteil
A(:,:,1)=0.5
% 50 Prozent Blau-Anteil
A(:,:,3)=0.5
imagesc(A)

pos= A(:,:,1)<=0.5 & A(:,:,3)>=0.5 & A(:,:,2)==0;
pos= repmat(pos,[1 1 3]);
pos_blau = pos;
pos_blau(:,:,1:2) = false;
pos_rot   = pos
pos_rot(:,:,2:3)   = false;

% rote positionen löschen
B = A
B(pos_rot) = 0

 
Private Nachricht senden Benutzer-Profile anzeigen
 
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.