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

Körper vermessen

 

birgy07
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 13.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2010, 16:47     Titel: Körper vermessen
  Antworten mit Zitat      
Hi,
bräuchste mal eure Hilfe.
Habe einen 2dimensionalen Körper, zusammengesetzt aus 3 Rechtecken und einem Kreis. Diesen habe ich als foto in matlab eingelesen. Habe ein grau Bild erstellt, ein schwarzweiß bild und möchte nun über die Anzahl der Pixel auf einer bestimmt Distanz die Länge und Breite der einzelnen Teile bestimmen. über imfinfo habe ich die Anzahl der pixel pro inch in x/y richtung auslesen können. Wenn ich mir nun im 'pixelregionalpanel' zwei Punkte aussuche, stimmt der Abstand der Pixel nicht mit dem realen abstand überein?

hat jemand eine Idee wie ich diesen Körper vermessen kann?
Danke schonmal
gruß birgy07

menschecht.JPG
 Beschreibung:

Download
 Dateiname:  menschecht.JPG
 Dateigröße:  3.08 MB
 Heruntergeladen:  930 mal
Private Nachricht senden Benutzer-Profile anzeigen


birgy07
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 13.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2010, 16:52     Titel:
  Antworten mit Zitat      
achso mir ist übrigens aufgefallen das es laut imfinfo z.B. 314 pixel pro inch sein sollten. Real sind es genau die Hälfte! habe ich jetzt an mehrern beispielen gemerkt das das immer hinkommt. interpretiere ich die Werte falsch?
Private Nachricht senden Benutzer-Profile anzeigen
 
Littleman
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 26.07.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2010, 00:14     Titel: frage beantwortet?
  Antworten mit Zitat      
also, mal abgesehen davon, dass deine fragestellung ziemlich schwammig ist: hier ne lösung, wie man den körper vermisst (in pixeln)!
(du brauchst die image processing tbx.)

Code:

% bild einlesen
img = imread('menschecht.JPG');
% binarisieren
img_bw = im2bw(img,.2);
% eckpunkte finden
[y,x] = find(img_bw==0);
h = (max(y)-min(y));
b = (max(x)-min(x));
% Umrechnungsfaktor (1412 Pixel auf dem bild entsprechen 21.0 cm (DIN A4))
pxpcm = 1412/21.0;

fprintf('Höhe: %d/%.2f (px/cm) ; Breite: %d/%.2f (px/cm);\n',h,h/pxpcm,b,b/pxpcm);
 


die umrechnung auf die reale größe geht nur mittels referenzwerten (wie bspw. hier 1412px sind 21.0 cm) im bild. dabei muss aber die distanz bei referenzobjekt und zu vermessendem objekt übereinstimen!

was ich vermute, was du meinst, ist folgendes:
du nimmst ein bild mit der kamera auf, lichtest eine person ab und möchtest dann die größe vermessen?! mal ganz davon abzusehen, dass die objekterkennnung (mensch) höchst kompliziert wird und die aktuelle Forschung hierbei (in alltagssituation) immer noch dran knabbert, KANNST du die Person nicht vermessen, da die tiefeninformation fehlt! im weiteren müsstest du dann über die brennweite(imfinfo().digitalcamera.focallength) den wert zurückrechen.
und die dpi hier angegeben kannst du getrost ignorieren. die hat hier NICHTS mit dem verhältnis zwischen pixel (bild) und inch (real) zu tun. wie auch? es sei denn unsere welt ist 2-dimensional --> 1 pixel bei einem abstand von 10 cm sind vlt. 0.3 mm oder so, bei einem abstand von 10 metern sind das dann 3 cm ... k.a. auf jeden fall mehr. somit hat jeder pixel seine eigene entsprechnugn abhängig von brennweite der kamera und distanz zum objekt!!

ich hoffe, ich konnte dir helfen und habe dich nicht verwirrt! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
birgy07
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 13.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2010, 10:59     Titel:
  Antworten mit Zitat      
Guten Morgen!

Hey super danke, warst eine große Hilfe.
In der Tat ist der Gedanke einen Menschen zu vermessen!
Ist ein Hochschulprojekt. Uns ist aber schon klar, dass wir das nicht erreichen können. Ziel ist es ein Objekt (z.B ein Würfel) auch in der Tiefe vermessen zu können.
Die Überlegung ist eine Wand als "0 Ebende" zu nutzen, und den Boden als "Z Ebene" Als Referenzobjekte sollen zwei DIN A4 Seiten an der Wand und am Boden dienen.
Kannst du nochmal erklären wie du auf die 1412 Pixel/21cm kommst?

Ich verstehe wie das Programm die Eckpunkte findet, ist es aber auch möglich die "Beine", den "Rumpf" und den "Kopf" einzeln zu bestimmen?


Danke für deine ausführliche Antwort und sorry für die "schwammige" Fragenstellung Smile

Gruß birgy07
Private Nachricht senden Benutzer-Profile anzeigen
 
Littleman
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 26.07.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2010, 12:35     Titel:
  Antworten mit Zitat      
also: 1421 px ist die breite des dina4 blattes im bild (ausgemessen mim grafikprogramm)

den rest erkennen geht wohl auch. da kommt aber die optimierungstoolbox mit ins spiel. müsste aber mal gucken wie das geht. wenn der körper aber so! bleibt, dann sollte es nicht allzu schwierig sein (auch ohne optimierungstoolbox -> best fit surfaces).

du kannst ja quasi deinen körper ausschneiden, dann kantendetektion machen, und dann den rand mit einer tangente abfahren. das profil (ecken, leicht zunehmende/abnehmende steigung) kannst du dir dann merken. und dann weisst du wo der kopf ist. von da aus dann wo der rest ist. isat ein bisschen komplexer aber sollte man hinbekommen.

also die idee: kante als profil, dann die aufeinaderfolgenden pixel nehmen (mehrere) und steigun ermitteln. darauf basierend dann das profil vergleichen. ...

sind die köper separiert, ist es natürlich wesentlich einfachen ...

nochwas: rudimentäre tiefenerkennung wäre denkbar unter zu Hilfenahme einer zweiten kamera! --> stereoskopie

wenn du die bilder dann übereinanderlegst und die pixelverschiebung berechnest, dann erhältst du deine tiefeninformation auch. ich weiss bloss nicht wie genau ....

so, nun muss ich los ... wenn de fragen hast ... bin Mo wieder da Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
birgy07
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 13.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2010, 18:20     Titel:
  Antworten mit Zitat      
Also deine Überlegungen sollten tatsächlich funktionieren, jedoch nützt es mir nicht allzu viel weil ich eben in der Lage sein muss auch andere Geometrien vermessen zu können.
Mit der Optimierungstoolbox habe ich leider garkeine Erfahrungen, könnte da auch jede Menge Hilfe gebrauchen.
Wär echt super wenn du dir dafür noch mal Zeit nehmen könntest.

Wäre natürlich super wenn mir jemand einen Tip geben könnte wie ich mit zwei Bildern einen Würfel oder ähnliches vermessen könnte.
Vielleicht hat ja jemand sowas schon gemacht

danke schonmal und Gruß
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.