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

Maximale Farbwerte eines Bildes auslesen

 

Blaze

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2019, 10:33     Titel: Maximale Farbwerte eines Bildes auslesen
  Antworten mit Zitat      
Hallo zusammen,
ich soll die Intensität mehrerer Bilder unter UV-Strahlung vergleichen. Dazu habe ich den Code weiter unten verwendet. Ich lese das Bild ein und lasse es mir anzeigen. Danach lasse ich mir die Werte der 3 Farbkanäle anzeigen. Aber gibt es eine Möglichkeit, nur die Maximalwerte zu erhalten?
Kann man bei schwarzweißen Bildern den maximalen Weißwert auslesen?

Code:
img = imread('Bild.jpg');        %liest das Bild ein

imshow(img);                        %zeigt das Bild an
red_value = img(:,:,1);             %roter Farbkanal
green_value = img(:,:,2);           %grüner Farbkanal
blue_value = img(:,:,3);            %blauer Farbkanal

sprintf('Value of the red, green and blue pixel is %d, %d, %d', red_value, green_value, blue_value)
 

Vielen Dank für Eure Hilfe Smile


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.08.2019, 10:43     Titel:
  Antworten mit Zitat      
Hallo,

was ist der Weißwert? Der Mittelwert von RGB, das Maximum, was ganz anderes?

In jedem Fall sollte sich das leicht berechnen lassen:
mit mean , max , oder eben etwas anderem ;)

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Blaze

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2019, 11:39     Titel:
  Antworten mit Zitat      
Hallo Harald,
vielen Dank für die schnelle Antwort.

Also bilde ich aus den 3 Farben einen Vektor und bestimme daraus den Mittelwert, der der Farbe Weiß entspricht?

Code:
A = [red_value, green_value, blue_value];     %Vektor mit den Farben erstellen
   
white_value = mean(A);                                %Weiß ist der Mittelwert aus RGB


Den maximalen Weißwert erhalte ich demnach durch den Mittelwert des Vektors mit den maximalen Farbwerten?

Code:
max_red_value = max(red_value);                 %Maximalwerte der Farben bestimmen
max_green_value = max(green_value);
max_blue_value = max(blue_value);

B = [max_red_value, max_green_value, max_blue_value];      % Vektor mit Maxima
max_white_value = mean(B);                     %Maximalwert von Weiß ist der Mittelwert
 


Aber irgendwie erhalte ich dann für den Mittelwert eines etwas höheren Wert als für das Maximum...
Hab ich da was falsch verstanden?

Viele Grüße

Matthias
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.08.2019, 11:59     Titel:
  Antworten mit Zitat      
Hallo,

der Mittelwert muss m.E. entlang der dritten Dimension des Bildes genommen werden:
Code:
white_value = mean(img, 3);


Ergebnis sollte ein 2D-Array sein.

Dann wäre
Code:
max_white_value = max(white_value, 'all')


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Blaze

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2019, 12:20     Titel:
  Antworten mit Zitat      
Hallo Harald,

also muss ich für den Mittelwert gar nicht erst die Farbkanäle auslesen?

Zum zweiten Teil, wenn ich die beiden Codes so einbaue, erhalte ich eine Fehlermeldung bezüglich der Dimension der Matrix:

Error using max
Matrix dimensions must agree.
max_white_value = max(white_value, 'all');


Viele Grüße
Matthias
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.08.2019, 12:44     Titel:
  Antworten mit Zitat      
Hallo,

ich hatte die Syntax etwas falsch:
Code:
max_white_value = max(white_value, [], 'all');


Kann man aber über die Doku auch selber rausfinden ;)

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Blaze

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2019, 13:22     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für die große Hilfe Smile

Viele Grüße
Matthias
 
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.