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

Musterabgleich

 

mnm2009
Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 21.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2010, 11:20     Titel: Musterabgleich
  Antworten mit Zitat      
Hallo Leute,

ich habe ein dummes Problem.
Ich habe ein Projektslabor an der FH , indem ich Heftkalmmer zählen soll.
Ich bin nach folgendem Vorgehensweise gegangen: Muster binealisieren, Charakteristische Regionen extrahieren und mit einem zusammenstellen von Heftklammern nach dem Formen vergleichen.
Es hat noch am Dienstag super funktionniert, aber seit gestern spinnt den Code ein bischhen.
Was mach ich falsch??machmal geht, manchmal geht nichtjavascript:emoticon('Rolling Eyes')
Bitte ich brauche Hilfe, ich muss nächste Woche präsentieren.
Danke schön im voraus

Code:
%%%Zählen von Heftklammern %%%%

%%%%% Step 1: Read the image %%%%%%%%%%%

%%%%%Import eines Bild in Matlab%%%
[NameTest,PathName] = uigetfile('*.bmp','Multiselect','on');
NewPath = strcat(PathName,NameTest);%%bitte graubild auswählen
D = imread(NewPath);
% name = NewPath1



%%%%%Step 2: Threshold the Image, Objektidentifikation
figure
im1 = im2bw(D,0.3);% Bild in binar umwandeln...grossrund = 0.4,grosseckig = 0.3, kleineckig = 0.56
imshow(im1);%Ziel: es soll scharfen Kanten erkennbar sein.
bwfill= bwmorph(im1,'dilate');
%% Labeling
 [L1, NUM1] = bwlabel(im1, 8);
 Muster1 = regionprops(L1,'all');%Eccentricity = 0.8734 von "grosseckig"
 s  = regionprops(L1, 'BoundingBox');
 g0 = im1;
 dim = size(s);
 
 for k=1:dim
  for   i = floor(s(k).BoundingBox(1)):floor(s(k).BoundingBox(1))+s(k).BoundingBox(3)
      for j = floor(s(k).BoundingBox(2)):floor(s(k).BoundingBox(2))+s(k).BoundingBox(4)
          x1 = floor(s(k).BoundingBox(1));
          y1 = floor(s(k).BoundingBox(2));
          g0(y1,i) = 1;
          g0(y1+s(k).BoundingBox(4),i) = 1;
          g0(j,x1) = 1;
          g0(j,x1+s(k).BoundingBox(3)) = 1;
         
      end
end
end
   
   
  %% COmpare
[NameTest,PathName] = uigetfile('*.bmp','Multiselect','on');
NewPath = strcat(PathName,NameTest);%%bitte graubild auswählen
D1 = imread(NewPath);
figure
im2 = im2bw(D1,0.9);%% tout le tas,regarder si toutes les kanten sont sorties... test= 0.9 , foto6=0.3,foto1_=0.5
imshow(im2)
comp = bwmorph(im2,'dilate');

[L2, NUM2] = bwlabeln(comp, 8);%um deutlcih darzustellen

%%Determiner les proprietes de formes
samedata = regionprops(L2,'all');
s  = regionprops(L2, 'BoundingBox');
g = im2;
 dim = size(s);

%% charahteristische Regionen extrarieren ud. zwar BoundingBox %%
for k=1:dim
  for   i = floor(s(k).BoundingBox(1)):floor(s(k).BoundingBox(1))+s(k).BoundingBox(3)
      for j = floor(s(k).BoundingBox(2)):floor(s(k).BoundingBox(2))+s(k).BoundingBox(4)
          x2 = floor(s(k).BoundingBox(1));
          y2 = floor(s(k).BoundingBox(2));
         
          if i>0 & y2>0
          g(y2,i) = 1;
          g(y2+ s(k).BoundingBox(4),i) = 1;
          else
          end
          if x2 >0 & j>0
          g(j,x2) = 1;
          g(j,x2+s(k).BoundingBox(3)) = 1;
              else
          end
                 if x1 == x2 + 1
                 
                  de(k) = k;
                 
                 else
                     if x1 == x2 - 1
                   
              de(k) = k;
              x = length(de(de~=0));
                 w = num2str(x);
                mess = strcat('grosseckigklammer =',w);
              % mess1 = strcat(NameTest,'=',w);
                h = msgbox(mess,'Result');

                 else
                 end
                 
             end
         
end
end
end
 
Rolling Eyes Rolling Eyes
_________________

Gruß
Private Nachricht senden Benutzer-Profile anzeigen


mnm2009
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 21.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2010, 12:10     Titel: BoundingBox
  Antworten mit Zitat      
Hat niemand einen Vorschlag??
Bittte , ich stoße beim Vergleich!!
_________________

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
mnm2009
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 21.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2010, 13:11     Titel:
  Antworten mit Zitat      
Ich habe es!!
ich habe die Abweichung um +- 1 vergrößern Very Happy
aber wie warum ändern sich Rechteckrechnung , obwohl die Bilder gleich sind??

Danke
_________________

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.