2011-01-10 39 views

cevap

10

Bunu yapmanın bir yolu, çemberin içinde ve dışında sıfır olanlarla ikili bir maske oluşturmaktır. Daha sonra bu diziyi, dairenin dışındaki her şeyi NaN ile gizlemek ya da maskenin içindeki görüntünün piksel değerlerini okumak için kullanabilirsiniz.

böyle, mesafeyi kolay bir yol iris merkezli diziler koordinat yaratmaktır, bir daire maskesi oluşturun ve eşik için: Cevabımı ... =) Çok güzel gidiyor

[xx,yy] = ndgrid((1:imageSize(1))-ci(1),(1:imageSize(2))-ci(2)); 
mask = (xx.^2 + yy.^2)<ci(3)^2; 
+0

. +1. Görüntüyü segmentlere ayırmak için, sadece maske ile çarpın. Dışarıda sıfırlar olsun. – Marnix

+0

@Marnix: Üzgünüm :). Her neyse, NaN'leri 'image (~ mask) = NaN' gibi dışa yerleştirmeyi öneririm, böylece imshow'daki (image, []) autoscale görüntüdeki tüm sıfırlar tarafından atılmaz. – Jonas

+0

Bu hatayı aldım: ??? Tanımsız işlev veya 'mantıksal' türünde giriş argümanları için 'sqrt' yöntemi. bu satırda maske = sqrt ((xx.^2 + yy.^2)

İlgili konular