Soru sorMatlab programında algoritma kısmının mantığını anlayamadım
eylul12 tarafından 7 yıl önce soruldu

Öncelikle Merhaba, for döngüsü içindeki algoritmanın mantığını çözemedim.Bu konuda yardımcı olursanız çok sevinirim…

 for k=1:length(stats)
     thisboundingbox=stats(k).BoundingBox;
     if stats(k).Area>10000
         rectangle('Position',[thisboundingbox(1),thisboundingbox(2),thisboundingbox(3),thisboundingbox(4)],'EdgeColor','r','LineWidth',2);
     else
         rectangle('Position',[thisboundingbox(1),thisboundingbox(2),thisboundingbox(3),thisboundingbox(4)],'EdgeColor','b','LineWidth',2);
     end
     if stats(k).Perimeter^2/stats(k).Area > 18
         text(stats(k).Centroid(1),stats(k).Centroid(2),'ÜÇGEN','Color','r');
     elseif stats(k).Perimeter^2/stats(k).Area < 14
         text(stats(k).Centroid(1),stats(k).Centroid(2),'DAİRE','Color','g');
     else
         text(stats(k).Centroid(1),stats(k).Centroid(2),'KARE','Color','b');
     end
 end
4 Cevap
sayginer Yönetici tarafından 7 yıl önce cevaplandı

Tam olarak neresini anlamadınız? Genel olarak hacimlerine göre farklı geometrileri bir nevi sınıflandırıyorsunuz.

eylul12 tarafından 7 yıl önce cevaplandı

Neden 18 ve 14 değerleri alınmış acaba birde
stats(k).Perimeter^2/stats(k).Area > 18 bu satırdaki işlem mantığı nedir

sayginer Yönetici tarafından 7 yıl önce cevaplandı

18 ve 14 alınmasının sebebini benim bilebilme mümkün değil. 18 ve 14 diye bir kriter belirlenmiş. Tamamen keyfi olduğunu düşünüyorum. Belirttiğiniz satırda stats vektörünün herbir elemanının karesini alarak (sanırım her eleman bir çevre uzunluğuna karşılık geliyor) sonrasında yine aynı elemanın Alan'ı ile çaparak 18'den büyük olup olmadığına bakıyor.
 

eylul12 tarafından 7 yıl önce cevaplandı

tesekkür ederim