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

H-DIBCO Bilder in MatLab einlesen und ausgeben.

 

Signal_Neuling
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 11.05.20
Wohnort: ---
Version: R2019b
     Beitrag Verfasst am: 22.04.2022, 18:27     Titel: H-DIBCO Bilder in MatLab einlesen und ausgeben.
  Antworten mit Zitat      
Hi liebe Leute,

leider habe ich nichts im Forum gefunden das mich weiter bringt und bestimmt habe ich nur eine gaaanz winzige Kleinigkeit übersehen.
Ich versuche in MatLab ( Version R2019b ) Bilder aus den Datensätzen von https://vc.ee.duth.gr/h-dibco2018/ einzulesen und auszugeben.

Wenn ich nun bspw. aus dem DIBCO2017_Dataset das Bild 7.bmp einlese und ausgebe wird mir lediglich ein konstanter Weiston angezeigt.
Code:

img = double(imread('DIBCO2017_Dataset/7.bmp'));
figure;imagesc(img);
 


Ich habe dann im Workspace geschaut und gesehen das das Bild mehrere Dimensionen hat, also wahrscheinlich ja RGB. Also versucht die einzelnen Layer anziegen zu lassen, was auch klappt.

Code:

figure; imagesc(img(:,:,1));
figure; imagesc(img(:,:,2));
figure; imagesc(img(:,:,3));
 


Es scheint auch so als sei ein Teilbild grüner, bzw. roter oder blauer als die anderen.

Nun meine Frage, wie kann ich alle Farbkanäle gleichzeitig ausgeben, sodass das Bild wie im Windows Foto Explorer ausschaut?


Vielen Dank im Voraus Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2022, 21:45     Titel:
  Antworten mit Zitat      
Hallo,

ich würde image oder imshow statt imagesc verwenden und die Umwandlung in double weglassen.
Bei weiteren Fragen bitte das eine Bild anhängen, damit man nicht erst 40 MB runterladen muss, um an das eine Bild zu kommen.

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
 
Signal_Neuling
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 11.05.20
Wohnort: ---
Version: R2019b
     Beitrag Verfasst am: 24.04.2022, 16:53     Titel:
  Antworten mit Zitat      
Hi.

Danke für deine Antwort.
Der Tipp die Typkonvertierung wegzulassen und das Bild per image oder imshow auszugeben hat erstmal geklappt.

Hab dann bisschen weiter gemacht und versucht den lokal adaptiven Sauvola Algorithmus zur Binarisierung zu implementieren, allerdings habe ich hier wieder ein ähnliches Problem. Nun klappt die Ausgabe mittels Imagesc und nicht mehr mittels image oder imshow.

Hab in den Docs geschaut und muss ehrlich gestehen das mir nicht ganz klar ist wo der unterschied zwischen den Funktionen sein soll ?! Confused Question

Code:


i_image = imread('DIBCO2017_Dataset/7.bmp');
figure(1); image(i_image); colormap(gray); title('mit image');
figure(2); imshow(i_image); colormap(gray); title('mit imshow');
figure(3); imagesc(i_image); colormap(gray); title('mit imagesc');

i_image = rgb2gray(i_image);
figure(4); image(i_image); colormap(gray); title('mit image');
figure(5); imshow(i_image); colormap(gray); title('mit imshow');
figure(6); imagesc(i_image); colormap(gray); title('mit imagesc');

window_size = [11 11];
sauvola_faktor = 0.1484375;   % 0.1484375 = 19/128 = 1/8 + 1/64 + 1/128

img = double(i_image);

meanFilt = fspecial('average', window_size);
mean_img = imfilter(img, meanFilt, 'symmetric', 'conv');

meanSquare = img.^2;
deviation = (meanSquare - mean_img.^2).^0.5;

R = max(deviation(:));
o_image = (img > ( mean_img.*(1 + sauvola_faktor * ( (deviation / R) -1)) ) );

figure(7); image(o_image); colormap(gray); title('mit image');      % schwarzes Bild ?
figure(8); imshow(o_image); colormap(gray); title('mit imshow');
figure(9); imagesc(o_image); colormap(gray); title('mit imagesc');

o_image = uint8(o_image);
figure(10); image(o_image); colormap(gray); title('mit image');     % schwarzes Bild ?
figure(11); imshow(o_image); colormap(gray); title('mit imshow');   % schwarzes Bild ?
figure(12); imagesc(o_image); colormap(gray); title('mit imagesc');

 


Besten Dank und verzeih mir das faux pas mit dem Bild Confused Diesmal ist eins angehängt Confused Embarassed
Viele Grüße

7.gif
 Beschreibung:

Download
 Dateiname:  7.gif
 Dateigröße:  653.65 KB
 Heruntergeladen:  215 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.04.2022, 18:52     Titel:
  Antworten mit Zitat      
Hallo,

o_image besteht ja nur auf 0 und 1 in unterschiedlichen Datentypen. Der höchste Helligkeitswert insbesondere bei uint8 ist aber 255. Wenn du das so umwandelst, zeigen alle Befehle das gewünschte an:
Code:
o_image = uint8(o_image)*255;


Ohne Umwandlung sind die Befehle halt unterschiedlich "schlau" darin zu erahnen, was der Anwender wohl haben möchte. imagesc ist da die beste Wahl, da das "sc" für "scaled" steht und die o.g. Skalierung somit automatisch und unabhängig vom Datentyp durchgeführt wird.

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
 
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.