Je veux trouver les coins des objets. J'ai essayé le code suivant:comment trouver les coins de l'objet tourné dans matlab?
Vstats = regionprops(BW2,'Centroid','MajorAxisLength','MinorAxisLength',...
'Orientation');
u = [Vstats.Centroid];
VcX = u(1:2:end);
VcY = u(2:2:end);
[VcY id] = sort(VcY); % sorting regions by vertical position
VcX = VcX(id);
Vstats = Vstats(id); % permute according sort
Bv = Bv(id);
Vori = [Vstats.Orientation];
VRmaj = [Vstats.MajorAxisLength]/2;
VRmin = [Vstats.MinorAxisLength]/2;
% find corners of vertebrae
figure,imshow(BW2)
hold on
% C = corner(VER);
% plot(C(:,1), C(:,2), 'or');
C = cell(size(Bv));
Anterior = zeros(2*length(C),2);
Posterior = zeros(2*length(C),2);
for i = 1:length(C) % for each region
cx = VcX(i); % centroid coordinates
cy = VcY(i);
bx = Bv{i}(:,2); % edge points coordinates
by = Bv{i}(:,1);
ux = bx-cx; % move to the origin
uy = by-cy;
[t, r] = cart2pol(ux,uy); % translate in polar coodinates
t = t - deg2rad(Vori(i)); % unrotate
for k = 1:4 % find corners (look each quadrant)
fi = t((t>=(k-3)*pi/2) & (t<=(k-2)*pi/2));
ri = r((t>=(k-3)*pi/2) & (t<=(k-2)*pi/2));
[rp, ip] = max(ri); % find farthest point
tc(k) = fi(ip); % save coordinates
rc(k) = rp;
end
[xc,yc] = pol2cart(tc+1*deg2rad(Vori(i)) ,rc); % de-rotate, translate in cartesian
C{i}(:,1) = xc + cx; % return to previous place
C{i}(:,2) = yc + cy;
plot(C{i}([1,4],1),C{i}([1,4],2),'or',C{i}([2,3],1),C{i}([2,3],2),'og')
% save coordinates :
Anterior([2*i-1,2*i],:) = [C{i}([1,4],1), C{i}([1,4],2)];
Posterior([2*i-1,2*i],:) = [C{i}([2,3],1), C{i}([2,3],2)];
end
Je suis l'image de sortie suivante
L'objet plus basse dans l'image n'est pas détectée correctement. Comment puis-je corriger le code? Il ne fonctionne pas pour une image pivotée.
Avez-vous essayé d'utiliser le détecteur de coin encastré de matlab: ['detectHarrisFeatures'] (https://www.mathworks.com/help/vision/ref/detectharrisfeatures.html)? – kedarps
Je ne sais pas comment l'utiliser – user1234
Pouvez-vous également poster l'image originale afin que les répondeurs puissent l'utiliser pour leur code de démonstration? – Wolfie