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

Maximaler Kontrast

 

Thomas_74
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 06.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2010, 14:21     Titel: Maximaler Kontrast
  Antworten mit Zitat      
Hi,

ich habe mit rgb2gray ein graues Bild erzeugt. Jetzt möchte ich das ich den vollen Helligkeits Umfang nutzen. Allerdings scheint das nicht zu funktionieren. Mein Code:

Code:

imG=rgb2gray(imRGB);
mi=min(min(imG));
ma=max(max(imG));
di=ma-mi;
imG=((imG-mi)/di)*255;
 
Private Nachricht senden Benutzer-Profile anzeigen


LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2010, 17:19     Titel:
  Antworten mit Zitat      
Hallo,

mir fallen auf Anhieb folgende möglichen Fehlerquellen ein:
Überprüfe den Datentyp von imG. Handelt es sich um uint8 solltest Du vor der Berechnung in double umwandeln und nachher dann wieder zurück konvertieren.
Oder der Datentyp ist schon double (und die Werte zwischen 0 und 1 normiert). Dann ist der Faktor 255 natürlich falsch.
Falls der kleinste Werte schon 0 und der größte schon 255 ist, hat der Algorithmus keine Auswirkung.

Kleine Anmerkung: um das Minimum zu berechnen kannst Du auch folgendes schreiben:
Code:

mi = min(imG(:))
 



Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 22.09.2010, 19:40     Titel:
  Antworten mit Zitat      
Moin,

Du nutzt doch schon den gesamten Kontrastumfangt von 256 Graustufen - mehr ist nicht drin! Wenn Du einen höheren oder anderen Kontrast erreichen willst, mußt Du die Werte des Histogramms durch Histogrammnormierung ändern. Dazu gibt es eine Vielzahl von Verfahren. Mit dem nachfolgendem Beispiel kannst Du den Kontrast verändern:

Code:
I=imread('cameraman.tif');
figure; imshow(I)
f=double(I);
gamma= .01;
r=0:255;
c=255/(256^gamma);
T=c*r.^gamma;
g=apt(f,T);
subplot(121); imagesc(f); axis square, colormap(gray)
subplot(122); imagesc(g); axis square, colormap(gray)

% Quelle:  Unbekannte Internetseite

function g=apt(f,T)
 
[nr nc]=size(f);
g=zeros(nr,nc);
for idx1=1:nr
    for idx2=1:nc
        r=f(idx1,idx2);
        s=T(r+1);
        g(idx1,idx2)=s;
    end
end
 


Oder liegt Dein Problem darin, dass Dein Histogramm zugelaufene Tiefen und/oder ausgefressene Lichter zeigt?

Viele Grüße

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


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

ich habe in der gestrigen Antwort vergessen zu erwähnen, dass es auch die Funktion "stretchlim" gibt, die automatisch min und max findet.

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas_74
Themenstarter

Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 06.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.09.2010, 09:47     Titel:
  Antworten mit Zitat      
Hi,

ich hab es jetzt so gemacht wie es im stretchlim Bsp. beschrieben ist.
Ich wollte nur ganzz dunkle Bilder aufhellen.

P.S. ist es sinvoll statt 256 Graustufen 16 bit zu benutzen oder wird das vom Monitor eh nicht mehr unterschieden?

MfG Cool Cool
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 23.09.2010, 10:12     Titel:
  Antworten mit Zitat      
Die Mehrinformation von 16 bit wird nur gebraucht, um bei Rechen-operationen feinere Details hervorzuheben, die dann beim Reduzieren auf 8 bit noch im Bild deutlich sind. Das betrifft aber nur sehr kritische Motive, wo in den Tiefen noch Zeichnung hervorgehoben werden soll und die Lichter auch noch differenziert dargestellt werden.

Da der Monitor ein strahlendes Medium ist, wird er Details in 16 bit noch darstellen, die im Druck nicht dargestellt werden können.

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Liddokun

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.09.2010, 12:14     Titel:
  Antworten mit Zitat      
Habe gerade mal gelesen, und sieht ja alles recht nett aus, aber gibt es den eine möglichkeit Gamma zu berechnen, damit der Kontrast maximal wird ?

das wäre praktisch um mit imadjust zu arbeiten Very Happy
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 27.09.2010, 12:27     Titel:
  Antworten mit Zitat      
Der maximale Kontrast wäre ein reine Binärbild - also ohne Graustufen. Du mußt den gewünschten Kontrast Deinem Bildinhalt anpassen. Dafür gibt es keine automatische Funktion, da nur Du entscheiden kannst, welche bildwichtigen Inhalte hervorgehoben werden sollen und auf welche man verzichten kann.

Das automatische Finden von min und max ist vorstehend beschrieben, auch wie man den Kontrast erhöht.

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Liddokun

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.09.2010, 13:07     Titel:
  Antworten mit Zitat      
alles klar, vielen dank Smile
 
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.