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

Koodinaten von Referenzenpunkte

 

xchtioui
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 04.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.12.2010, 13:32     Titel: Koodinaten von Referenzenpunkte
  Antworten mit Zitat      
Hallo Zusammen,

Ich möchte gerne zwei Referenzpunkten in einem Bild erzeugen um die Information der Auflösung zu erkennen. Es geht um die Skalierung von Bilder
die Fragen sind
ich habe kein Modell von Referenzen in Matlab gefunden??
und welche befehle soll ich anwenden um die Koordinaten den Referenzen im Bild zu erkennen?

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


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 05.12.2010, 14:43     Titel:
  Antworten mit Zitat      
Moin xchtioui,

ich bin mir nicht sicher, ob ich Dich richtig verstanden habe, vielleicht kannst Du Dein Problem etwas genauer beschreiben. Mit der Fuktion "ginput" kannst Du Punkte auswählen, anzeigen lassen und die Koordinaten ausgeben, um sie im Vergleich mit einem anderen Bild wieder anzuwenden.

Viele Grüße
Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
xchtioui
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 04.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.12.2010, 15:12     Titel:
  Antworten mit Zitat      
Hallo Hubertus,

bei einem Bild möchte ich Zwei Punkten als Referenz nehmen, damit ich automatisch die Koordinaten umrechne und Information über die Auflösung dem Bild, das heißt die Anzahl Pixel pro Milimeter oder Mikrometer zu erkennen
es geht erstens um die Position den Punkten zu erkennen und dann das Bild skalieren

L.G
Xchtioui
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 05.12.2010, 16:11     Titel:
  Antworten mit Zitat      
Hallo,

die Frage ist so zu allgemein und nicht zu beantworten. Wie liegen den die beiden Referenzpunkte im Bild vor? Sind das wirklich markante Punkte (z.B. andere Farbe oder Größe...) oder beliebige Punkte die du z.B. mit der Maus interaktiv auswählen möchtest.

Am besten du hängt mal ein Beispielbild mit an damit man mal eine Vorstellung bekommt, dann können wir auch über eine Lösung nachdenken. Zum jetzigen Zeitpunkt wäre alles nur Spekulation...

MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
xchtioui
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 04.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.12.2010, 17:28     Titel:
  Antworten mit Zitat      
Hier ist ein bild wo mann die Punkte (Kreuzung), die ich gemeint habe , sehen kann

123.JPG
 Beschreibung:

Download
 Dateiname:  123.JPG
 Dateigröße:  2.57 MB
 Heruntergeladen:  721 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 06.12.2010, 02:37     Titel:
  Antworten mit Zitat      
Hallo,

und das ist genau was ich meinte, du sprichst von Punkten, im Bild sind es aber Kreuze. Für die digitale Bildverarbeitung kann das schon einen beträchtlichen Unterschied machen, ob man Beispilesweise bei morphologischen Filtern ein rundes oder kreuzförmiges Strukturelement verwendet!
Ich habe mir einmal die Mühe gemacht dir ein für dein Beispielbild passendes Beispiel zu erstellen. Jedoch kann ich nicht garantieren, dass es bei allen deinen Bildern funktioniert, da besonders das Ergebnis der Binarisierung stark vom verwendeten Schwelllenwert (Threshold) abhängt. Dieser wiederrum muss gegebenenfalls bei anderer Beleuchtung oder Grauwerten neu angepasst werden. In deinem geposteten Bild konnte ich es allerdings völlig automatisch realisieren.
Code:

I = imread('Path\123.jpg');
Ig = rgb2gray(I);
Iga = imadjust(Ig);
map = colormap(gray);
BW = im2bw(Iga,map); % Create binary image
BWi = imcomplement(BW);
BWif = imfill(BWi,'holes'); % Fill holes

% Create structure element with shape of a cross
crux = zeros(50,50);
crux(1:end,round(size(crux,1)/2)) = 1;
crux(round(size(crux,2)/2),1:end) = 1;
SE = strel('arbitrary',crux);

% Morphological filtering
BWerod = imerode(BWif,SE);
BWrec = imreconstruct(BWerod,BWif);

labels = bwlabeln(BWrec); % Label BW-image
RP = regionprops(labels,'all'); % Get properties from objects
RP(([RP.Area])<8000 | ([RP.Area])>18000) = []; % detext crosses by Area

if length(RP) ~= 2
    [junk,idx] = sort([RP.Extent]); % detect crosses by "Extent" (Area divided by the area of the bounding box)
    MP(1,:) = RP(idx(1)).Centroid; % midpoints
    MP(2,:) = RP(idx(2)).Centroid;
else
    MP(1,:) = RP(1,1).Centroid; % midpoints
    MP(2,:) = RP(2,1).Centroid;
end

imshow(Ig)
text(MP(1,1),MP(1,2),num2str(sprintf('x = %.f\ny = %.f',MP(1,1),MP(1,2))),'Color','red','Fontsize',14);
text(MP(2,1),MP(2,2),num2str(sprintf('x = %.f\ny = %.f',MP(2,1),MP(2,2))),'Color','red','Fontsize',14);

 


Um letztendlich die Kreuze aus dem Bild "BWrec" zu extrahieren habe ich die Fläsche der Kreuze als Parameter verwendet. Sollten trotzdem noch mehr als 2 Objekte verhanden sein, nehme ich noch den "Extent" als weiteren Parameter hinzu. Sollten auch danach noch mehr als 2 Objekte vorhanden sein (z.B. bei anderen Bildern von dir), so müsstest du mal selber schauen welche Eigenschaften von "RP" für die Unterscheidung der Kreuze von den anderen Objekten am besten geeignet sind.
Zudem möchte ich dich darauf hinweisen, dass der Mittelpunkt sich unter Umständen nicht exakt auf den Kreuzungen befindet, da dies besonders von der Form des Kreuzes nach der Binarisierung abhängt und dabei ist das Kreuz eben nicht immer komplett symmetrich.


MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
xchtioui
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 04.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.12.2010, 16:47     Titel:
  Antworten mit Zitat      
Ich danke dir so sehr Sco,
das ist sehr Hilfreich!!

MFG
Xchtioui
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 06.12.2010, 17:01     Titel:
  Antworten mit Zitat      
Hallo,

kannst ja mal ein Feedback geben, ob es auch fuer die anderen Bilder klappt.
P.s. was ist denn auf dem Bild zu sehen, also dieses spitze Ding? Smile

MFG

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