kann ich mir von matlab auch die Dimensionen eines Bildes ausgeben lassen?
Ich würde gern wissen, wie viel pixel * pixel mein Bild groß ist, also z.B. als Ausgabe: 1400 x 500
Zum Verständnis: Wenn mein Bild 1400 x 500 groß ist, liesst matlab dieses dann als eine matrix mit 1400 spalten und 500 Zeilen ein?
Wenn ich ein Bild mit B=rgb2gray(A); bearbeite...liegt es ja in verschiedenen graustufen vor. kann ich mir anzeigen lassen, in welchen (also welche Graufarben genau enthalen sind)? ICh würde so ein graustufenbild gern in z.B. 2 Farben aufteilen: Aus grau wird schwarz und weiß bleibt weiß. K
Kann ich ein bild auch direkt nur in schwarz/weiß umfärben? (Also den Befehl B=rgb2gray(A); ersetzen).
Noch schöner wäre es, wenn man ein grau stufen bild in 3 kategorien/farben einteilen könnte: Weiß, schwarz und ein schwaches grau. Somit müsste man nicht direkt in nur 2 kategorien einteilen, sondern könnte leichte verfärbungen erstmal einer zwischen kategorie zuordnen.
Wenn Du ein Graustufenbild einliest, zeigt Dir der Workspace die Größe des Bildes an. Wenn das Bild, wie in Deinem Fall, mit der längeren Seite waagerecht liegt, hast Du im größeren Wert die Zeilen und logischerweise im kleineren Wert die Spalten. Die Anzahl der Pixel ergibt sich aus m*n. Bei Farbbilder aus m*n*3.
Die Grauwerte in einem Graustufenbild kannst Du Dir bequem mit der Funktion >> impixelinfo und impixelregion anzeigen lassen.
Die Grauwerte des Bildes liegen zwischen 0 und 255. Daraus kannst Du Bereiche einschränken, in dem Du über einen Schwellwert angibst, welche Werte zu schwarz und welche Werte zu weiß werden sollen. Eine Funktion dazu ist der Befehl: im2bw der auf das Bild X mit einem Schwellwert belegt werden kann. Der Befehl lautet dann: y=im2bw(X,0.5). Weiterhin kannst du jeden anderen Wert auf einen festzulegenden Wert indizieren, also zwangsweise festlegen.
Wenn Du noch Fragen hast, findest Du hier viele Helfer. Viel Spaß.
Vielen Dank!
Einige Fragen aber noch dazu, denn ich kann das so natürlich anwenden, aber könnte es so nicht selbst entwickeln/nachvollziehen:
Der erste Befehl: numblackpixel = nnz(BW==0); % BW = binary image
Wofür steht nnz? Was genau macht das ==0?
(Meine Vorstellung: nnz=irgendwas in richtung "zähle", ==0 --> Die Werte der Bildmatrix die gleich 0 sind, und 0 bedeutet schwarz?)
Numel(Bild); --> Wofür genau steht Numel? Mit Numel lässt sich prinzipiell die Pixelanzahl von Bildern ausgeben?
Dann habe ich noch probiert mir diese Informationen ausgeben zu lassen durch:
fprintf(numblackpixel, ratio);
Das funktioniert nicht, wieso?
Folgendes funktioniert:
fprintf('%-10.4f %-10.4f %-10.4f %-10.4f\n\n\n', numblackpixel, ratio);
Ich habe aber keine ahnung wieso. was bedeutet %-10.4f? Wofür steht n\?
Super vielen Dank!
Werde nun häufiger die hilfe in Matlab selbst nutzen
wo ist dann de runterschied ob ich numblackpixel = nnz(C); oder numblackpixel = nnz(C==0); mache? Das Ergebnis ist stark verschieden! (ca. 150k gegen 680k gezählte schwarze pixel)
Vielen Dank für die Display hilfe, das schneidet die sinnlosen .0000 meiner zahlen ab
Ist es auch möglich sich diese Informationen direkt auf dem Bild ausgeben zu lassen? Also nach dem Schema: Farbbild einlesen-->grau stufen bild-->schwarz weiß bild-->abspeichern mit den der Ratio Information auf dem Bild als text
Besten Dank für Eure super Hilfe! Werde nun einige Zeit/Jahre mit Matlab zu tun haben, also hier auch sicherlich mein Wissen - wenn denn dann genug vorhanden ist - weitergeben!
wo ist dann de runterschied ob ich numblackpixel = nnz(C); oder numblackpixel = nnz(C==0); mache? Das Ergebnis ist stark verschieden! (ca. 150k gegen 680k gezählte schwarze pixel)
Hallo, da
NNZ zählt ja alle Elemente, welche ungleich Null sind.
Schwarz entspricht im Matrix der Wert 0
Weiß entspricht 1;
Deswegen zählst du mit Konstrukt: numblackpixel = nnz(C) nicht schwarze sondern weiße Pixel
mit C==0 macht man dagegen erst einen Vergleich, also gezielte Suche nach Nullen. Als Ergebnis bekommt man eine Logische Matrix. An der Stellen im Bild wo Nullen gefunden sind, sind in logischer Matrix dagegen jetzt Einser.
Deswegn mit dem Konstrukt numblackpixel = nnz(C==0) wird wirklich nach schwarzen Pixeln gesucht. Man kann es z.B. numblackpixel = sum(sum(C==0)) nachprüfen.
zur Ausgabe auf dem Bild schau dir die Funktion TEXT in der Hilfe an.
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
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.