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('')
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
%%%%%Step2: 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;
%%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
Ich habe es!!
ich habe die Abweichung um +- 1 vergrößern
aber wie warum ändern sich Rechteckrechnung , obwohl die Bilder gleich sind??
Danke
_________________
Gruß
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.