Wie kann ich Binärbilder in einer Montage korrekt darstellen?

5 Ansichten (letzte 30 Tage)
Jonas Klössler
Jonas Klössler am 30 Sep. 2023
Ich habe mit folgendem Code Binärmasken erstellt (Kanten gefunden):
gsAvgEdge=edge(gsAvgKon);
gsWienEdge=edge(gsWienKon);
gsDiscEdge=edge(gsDiscKon);
und möchte diese nun in einer Montage darstellen:
montage({gsAvgEdge,gsWienEdge,gsDiscEdge})
Wenn ich das mache, sehe ich aber hauptsächlich schwarze Bilder nebeneinader mit vereinzelt weißen Punkten.
Lasse ich mir z.B. gsAvgEdge oder die anderen beiden Binärbilder mit imshow() anzeigen, sehe ich das was ich erwartet habe.
Muss ich für die Montage rescalen? Oder warum läuft es nicht?

Antworten (1)

Nathan Hardenberg
Nathan Hardenberg am 1 Okt. 2023
Mit deiner Beschreibung ist es leider schwierig dir zu helfen. Sinnvoll wäre es, wenn du Screenshots von deinen figures mit anhängen könntest. Die Bilder mit imshow und montage sollten eigentlich die gleichen sein. Ich habe mal ein Codebeispiel angefügt, dass deinem Vorgehen hoffentlich ähnelt.
Das Einzige was ich mir vorstellen könnte, ist das die figure mit der montage kleiner ist und desswegen nicht richtig dargestellt wird (aber richtig ist). Das kann man auch unten erkennen. Es sieht so aus, als wäre die Kante vom Kameramann ("b") nicht durchgängig. Wenn du die figure größer machst wird die komplette Kante wieder sichtbar (kann ich in der online Matlab-Version leider schlecht visualisieren, aber du kannst die figure am PC einfach größer ziehen).
% load three example grayscale images
A = imread('coins.png');
B = imread('cameraman.tif');
C = imread('circuit.tif');
% find edges
a = edge(A);
b = edge(B);
c = edge(C);
figure(1)
montage({a,b,c})
figure(2)
imshow(a)
figure(3)
imshow(b)
figure(4)
imshow(c)

Produkte


Version

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!