Verfasst am: 14.01.2013, 18:55
Titel: schwerpunktsberechnung von Bildern oder Matrix umwandeln
hallo zusammen,
ich habe das Problem, dass meine Ausgabedatei, in einem von mir durchgeführten Versuch, nicht mit so ist wie bisher angenommen. Ich habe eine komplettes Programm geschrieben zum einlesen einer txt-Datei, falsche Zeilen herauslöschen und anschließender Schwerpunktsberechnung. Nun allerdings spuckt mir mein Programm keine txt-Datei aus sondern Bilder. Bei der txt File hatte ich eine 3 spalten Matrix,also:
x-Koordinaten, y-Koordinaten, Intensität.
Danach dachte ich mir "nun gut matlab kann auch Bilder einlesen", aber spuckt mir nun Matrizen der größe 1024x1024 aus und der Inhalt ist nur noch die Intensität der Pixel.
zum einlesen der Bilder genutzt und zum finden der Werte welche eine Intensität über 20 haben.
Nun meine fragen:
1. kann mir jemand sagen wie ich die Bildmatrix in mein vorheriges Schema umschreiben kann?
oder 2. Wie kann ich aus der Bildmatrix einen Schwerpunkt berechnen?
Hoffe mein Problem ist klar geworden und Danke schonmal
Ich verstehe die Beschreibung des Problems nicht.
Den Schwerpunkt einer Matrix kann man berechnen, indem man die Indices mit den Intensitäten multipliziert und danach summiert, genauso also, wie man den Schwerpunkt von drei Gewichten bestimmen würde, die an einer Stange hängen.
1024*1024 ist nicht riesig.
Was soll denn die Funktion function_zet berechnen?
SIZE(x) gibt einen Vektor zurück. Deshalb macht "if k < size(x)" wohl nicht, was Du erwartest.
0+k ist das gleiche wie k, wozu dient dann das Addieren der Null?
Die Fehlermeldung bedeutet, dass die Ausgabe gar nicht definiert wurde. Der Debugger ist dann das Mittel der Wahl um herauszufinden, was genau geschieht. Setze Breakpoints in die Funktion und lasse Matlab Zeile für Zeile laufen.
vergesst alles zuvor, habe nun noch ein bisschen herum gesucht und gebastelt. Heraus kam:
Code:
%einlesen des Bildes
i=imread('test.bmp');
%setzen aller Werte unter 20 auf 0
i(i<=20)=0;
%konvertierung der Matrixwerte in double
a=im2double(i);
%berechnung der Fläche des Bildes
ar=sum(sum(a(:,:,1)));
%berechnung des 1. Moments von x und y
mx=repmat((1:size(a,1)),size(a,2),1);
my=repmat((1:size(a,2)),1,size(a,1));
%Schwerpunktsberechnung fuer x und y
s_x=sum(sum(a(:,:,1).*mx))/ar
s_y=sum(sum(a(:,:,1).*my))/ar
manchmal ist man echt zu doof, und ein paar Minuten nachdem man nachfragt schafft man es selber.
Trotzdem Danke
Einstellungen und Berechtigungen
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.