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

for-Schleife

 

opto

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2014, 15:04     Titel: for-Schleife
  Antworten mit Zitat      
Hallo, kann mir bitte jemand helfen eine for-Schleife zu schreiben. Ich hab zwanzig Bilder. Bei jedem Bild wird der Medianfilter angewendet und dann wird das Bild binariesiert. Anschließend wird der Schwerpunkt bestimmt. Für ein Bild habe ich es hingekriegt.
Code:
%
med = medfilt2(bild1);
bin = im2bw(med,0.6);
sp = regionprops(bin,'Centroid');
centroids = cat(1, sp.Centroid);

imshow(bin)
hold on
plot(centroids(:,1), centroids(:,2), 'b*')
hold off
 


Ich kriege es aber nicht hin, das für alle Bilder in eine for-Schleife zupacken.


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 09.12.2014, 15:28     Titel:
  Antworten mit Zitat      
Zitat:
Ich kriege es aber nicht hin, das für alle Bilder in eine for-Schleife zupacken.

was hast du denn bis jetzt versucht ?
zum thema daten einlesen mittels for schleife gibt es hier im forum schon einige einträge. sind die bilder alle mit unterschiedlichen namen in unterschiedlichen ordnern oder befinden sie sich bereits im workspace? hast du die indizierung dabei im datei namen versteckt?
ein paar weitere infos wären noch hiflreich Smile
grüße winkow
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
opto

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2014, 15:40     Titel:
  Antworten mit Zitat      
ja die Bilder sind schon im Workspace. die Nummerierung steckt im namen der bilder. also bild1, bild2 ... usw.
ich habe so was in der art versucht. k=20 , da es 20 bilder sind. aber es funktioniert nicht.
Code:
%
k=20;
for m = 1:k;
med = medfilt1(m);
bin =im2bw(med,0.6);
sp = regionprops(bin,'Centroid');
centroids = cat(1, sp.Centroid);
end
 
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 09.12.2014, 15:45     Titel:
  Antworten mit Zitat      
Zitat:
bild1, bild2

ja da ist dir ein typischer anfänger fehler unterlaufen oder demjenigen der die bilder da hingepackt hat. wie du sihst ist es sehr nachteilhaft wenn man den index einer variablen im namen versteckt. wie kommen denn die bilder in den workspace? kannst du das noch ändern ? falls ja würde ich dir das raten. falls nicht könnte dir
Code:
helfen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
opto

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2014, 15:59     Titel:
  Antworten mit Zitat      
die bildnamen kann ich ändern. aber ich verstehe nicht welchen einfluß das auf die schleife hat.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 09.12.2014, 16:09     Titel:
  Antworten mit Zitat      
opto hat Folgendes geschrieben:
die bildnamen kann ich ändern. aber ich verstehe nicht welchen einfluß das auf die schleife hat.

der einfluss besteht darin das man dann den index als index verwenden kann.
darum sollte man einen index nicht im namen verstecken
Code:
k=20;
for m = 1:k;
med = medfilt1(bild{m});
bin =im2bw(med,0.6);
sp = regionprops(bin,'Centroid');
centroids = cat(1, sp.Centroid);
end

wäre möglich wenn du die bilder im cellarray namens bild abgelegt hast.
Code:
k=20;
for m = 1:k;
med = medfilt1(bildm);
bin =im2bw(med,0.6);
sp = regionprops(bin,'Centroid');
centroids = cat(1, sp.Centroid);
end

ist hingegen keine gültige syntax
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
opto

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2014, 16:37     Titel:
  Antworten mit Zitat      
ok, das leuchtet mir ein.
ich habe das jetzt so gemacht:

Code:
%
bild = cell(1,20);
bild{1,1}= imread('+25mm.jpg');
bild{1,2}= imread('+50mm.jpg');
bild{1,3}= imread('+75mm.jpg');
bild{1,4}= imread('+100mm.jpg');
bild{1,5}= imread('+125mm.jpg');
bild{1,6}= imread('+150mm.jpg');
bild{1,7}= imread('+175mm.jpg');
bild{1,8}= imread('+200mm.jpg');
bild{1,9}= imread('+225mm.jpg');
bild{1,10}= imread('+250mm.jpg');
bild{1,11}= imread('-25mm.jpg');
bild{1,12}= imread('-50mm.jpg');
bild{1,13}= imread('-75mm.jpg');
bild{1,14}= imread('-100mm.jpg');
bild{1,15}= imread('-125mm.jpg');
bild{1,16}= imread('-150mm.jpg');
bild{1,17}= imread('-175mm.jpg');
bild{1,18}= imread('-200mm.jpg');
bild{1,19}= imread('-225mm.jpg');
bild{1,20}= imread('Mitte.jpg');


k=20;
 for m =1:k;
med = medfilt1(bild{m});
bin = im2bw(med,0.6);
sp = regionprops(bin,'Centroid');
centroids = cat(1, sp.Centroid);

 end
 


Aber das Programm gibt mir eine Fehlermeldung aus:

??? Error using ==> Schwerpunkt at 34
Input arguments must be 'double'.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 09.12.2014, 17:14     Titel:
  Antworten mit Zitat      
das lässt sich leider ohne lauffähiges beispiel so nicht nachvollziehen. aber an irgend einer stelle wird etwas anderes als der erwartete double wert übergeben
was da hilft ist einmal mit dem debugger durch die schleife zu gehen und sich an der stelle an der der fehler auftritt die werte anzugucken ob etwas nicht so ist wie es seien sollte.
_________________

richtig Fragen
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.