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

RAW Bild Datei anzeigen lassen

 

Norman1990
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 14.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2014, 08:40     Titel: RAW Bild Datei anzeigen lassen
  Antworten mit Zitat      
Hallo Matlab Freunde!

Ich habe ein Problem mit der Darstellung von rohformatigen Bildern. Über Matlab FileExchange habe ich die Funktion readraw() gefunden, mit der ich die jeweiligen RGB Werte als Matrix getrennt abspeichern kann.
Code:

Code:

rgb = readraw('03.03.14_Versuch3_flow12.50026.nef');

R=rgb(:,:,1);
G=rgb(:,:,2);
B=rgb(:,:,3);
 
imagesc(R)


Lasse ich mir z.B. nur die R-Matrix anzeigen, dann erscheint folgendes Bild ('Rotstich.jpg').

Verwende ich die Funktion
Code:
dann folgt ein Foto mit violetten Farbstich ('Violettstich.jpg')

Meine erste Frage ist, wie kann ich die drei Matrixen (R,G,B) übereinander legen, dass das ganz normale Bild angezeigt bekomme?
Ich vermute, dass Matlab die Farben intern skaliert, Rot großer Wert, Blau kleiner Wert. Über
Code:
colormap(irgendeine Map)
klappt es auch nicht.

Ich hatte die Idee, dass ich über eine Schleife ein Bereich vorgebe und Matlab dann die einzelnen RGB Werte aus den Matrixen nimmt und diese dann anzeigt. Aber ich kenne keine Funktion mit der ich die Farbe eines Pixels angeben kann.
Z.B. Pixelfarbe [255 0 0] --> Der Pixel wär also rot.

Also, hat jemand eine Idee, wie ich mir die Rohdaten richtig anzeigen lassen kann?

Violettstich.jpg
 Beschreibung:

Download
 Dateiname:  Violettstich.jpg
 Dateigröße:  244 KB
 Heruntergeladen:  683 mal
Rotstich.jpg
 Beschreibung:

Download
 Dateiname:  Rotstich.jpg
 Dateigröße:  308.81 KB
 Heruntergeladen:  697 mal
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 28.04.2014, 08:50     Titel:
  Antworten mit Zitat      
kann das grade nicht testen aber schonmal versucht nicht die eine schicht rauzuschneiden sondern die anderen schichten auf 0 zu setzen ?
_________________

richtig Fragen
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: 28.04.2014, 08:56     Titel:
  Antworten mit Zitat      
Moin,

warum benutzt du die Funktion imagesc und nicht imshow? Imagesc verfälscht doch die Farben! Die Farbauszüge kannst du über "cat2 wieder zusammenfügen.

Grüße - Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Norman1990
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 14.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2014, 10:07     Titel:
  Antworten mit Zitat      
Hallo

Zu der Aussage von Winkow:
Code:

% Datei einlesen

rgb = readraw('03.03.14_Versuch3_flow12.50026.nef');


%RGB Farben
rgb(:,:,1);
rgb(:,:,2);
rgb(:,:,3);

rgb(:,:,1)=0;
rgb(:,:,2)=0;
rgb(:,:,3);

image(rgb)
 

Dabei entsteht z.B. das blaue Bild ('Blaustich.jpg').




Zu Hubertus: Die Funktion
Code:
imshow('03.03.14_Versuch3_flow12.50026.nef')

zeigt mir immer nur das Vorschaubild (Anhang), nicht das Bild in seinen ganzen Abmessen (4288x2848).
Mit
Code:

rgb = readraw('03.03.14_Versuch3_flow12.50026.nef');
r=rgb(:,:,1);
g=rgb(:,:,2);
b=rgb(:,:,3);

RGB=cat(3,r,g,b)
imshow(RGB)

habe ich sie wieder zusammengefügt. Das hat aber nichts gebracht. Es gab wieder das violette Bild wie zuvor!

Habt ihr noch eine Idee, wie man die 3 Matrixen übereinander legt und diese dann zu dem richtigen Bild zusammenfügt?

Vorschaubild.jpg
 Beschreibung:

Download
 Dateiname:  Vorschaubild.jpg
 Dateigröße:  112.84 KB
 Heruntergeladen:  657 mal
Blaustich.jpg
 Beschreibung:

Download
 Dateiname:  Blaustich.jpg
 Dateigröße:  65.81 KB
 Heruntergeladen:  628 mal
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: 28.04.2014, 13:05     Titel:
  Antworten mit Zitat      
Hallo Norman1990,

woher hast du die Info, dass sich damit *.nef-Dateien öffnen lassen?

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Norman1990
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 14.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.04.2014, 16:27     Titel:
  Antworten mit Zitat      
Hallo Hubertus,

steht auf der Seite von Matlab FileExchange:
http://www.mathworks.cn/matlabcentr.....12-raw-camera-file-reader

Zitat aus der Info: "These functions will read raw images from many digital cameras into MATLAB".

Ich gehe davon aus, dass diese Funktion .nef Dateien ausliest, weil es bis jetzt ja läuft (bis auf diese rot/blau Stiche).

Ich habs gestern nur zum Teil hinbekommen. D.h. ich habe die RGB Matrixen übereinandergelegt, und das Ergebnis ist etwas besser, als die Bilder zuvor. Zu sehen in "RGB Bild.jpg" Es ist immernoch ziemlich dunkel... aber wenigstens ohne knallige Farben. Die Idee kam von Winkow Smile

Code:
rgb = readraw('03.03.14_Versuch3_flow12.50026.nef');
A=rgb;
B=rgb;
C=rgb;

%Scales
scale_a=0.7;
scale_b=0.41;
scale_c=0.4;

%RGB Farben
A(:,:,1)=scale_a.*rgb(:,:,1);
A(:,:,2)=0;
A(:,:,3)=0;

B(:,:,1)=0;
B(:,:,2)=scale_b.*rgb(:,:,2);
B(:,:,3)=0;

C(:,:,1)=0;
C(:,:,2)=0;
C(:,:,3)=scale_c.*rgb(:,:,3);


% Anzeigen
%figure(1)
image(A)
hold on
%figure(2)
image(B)
hold on
%figure(3)
image(C)
hold on
alpha(0.1)


RGB Bild.jpg
 Beschreibung:

Download
 Dateiname:  RGB Bild.jpg
 Dateigröße:  153.78 KB
 Heruntergeladen:  636 mal
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: 29.04.2014, 16:42     Titel:
  Antworten mit Zitat      
In der Datei readme.m sind aber folgende Formate vorgeben:

rawFormat.ext = {'raw', 'crw', 'dcr', 'mrw'};

Das könnte ein Hinweis darauf sein, dass du Probleme mit den Farben hast!
Private Nachricht senden Benutzer-Profile anzeigen
 
Norman1990
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 14.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.05.2014, 16:33     Titel:
  Antworten mit Zitat      
Hallo Hubertus,

Ein RAW Format ist doch aber nur der Oberbegriff für verschiedene herstellereigene Fotoformate. An sich gibt es doch kein Foto mit der Endung ".raw". Und ".nef" ist eben so ein Rohdatenformat, deswegen würde ich behaupten, dass die Funktion meine Bilder ordentlich einlesen müsste...

Mfg, norman1990
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: 05.05.2014, 17:51     Titel:
  Antworten mit Zitat      
Wenn das wäre, bräuchte man überhaupt keine Formate. Jeder Hersteller verwendet seinen eigenen Algo. Zumal die RGB-Pixel nicht gleich verteilt sind und den Rest Farbe zum Bild unterschiedlich errechnen. Du kannst ja mal die Endung einfach ändern und dann sehen, dass das nicht passt. Wenn du die Werte des RGB Bayern Pattern als Basis nimmst, braucht Du Referenzwerte, um die Richtigkeit deines Verfahrens zu prüfen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Norman1990
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 14.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2014, 13:41     Titel:
  Antworten mit Zitat      
Okay. Danke für deine Hilfe. Ich werde mich jetzt erstmal nicht mit den Rohdaten herumärgern, sondern ein anderes Bildformat wählen.

Lg, norman1990
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: 07.05.2014, 13:57     Titel:
  Antworten mit Zitat      
Noch ein kleiner Hinweis, den ich bei meiner letzten Antwort nicht parat hatte. RAW -Dateien sind keine Rohdaten! Nach Auslesen der Bayer Pattern wird bereits heftig interpoliert. Dazu gehört u.a.:

RAW -> Bayer Interpolation -> Weißabgleich, Kontrast, Sättigung, Schärfe und firmenspezifische Berechnungen.

Die Pattern haben auch Fehler. Es werden auch optische Fehler (Unschärfen) herausgerechnet.
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 - 2025 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.