2017-05-14 102 views
5

Eğer ben şu anda ben şu sorunuyla karşı karşıya ediyorum, görüntüler üzerinde çalışıyorum bildiği gibi, ben teoremi biraz geçerli olabilir, ben ekli resimde görülmektedir hattının çapını ölçmek için nasıl bilmiyorum Pisagor, ama görüntü kalın çizgi vardır, bu durumda örneğin bir görüntüde yapmak mümkündür, ancak durumda, satır yapılabilir daha ince olup olmadığını bilmiyorum?Görüntüdeki bir çizginin çapı nasıl elde edilir?

Example image

o çap değiştirecek bir haç olduğunda, önümüzdeki görüntüde göstermek olduğu açıktır, çünkü hat, tek başına olduğunda ben çapını bilmek istiyorum. on line belirli bir noktada

Eğer 2 şeyden biri yapabileceği kalınlığını tahmin etmek istiyorum: Burada

diameter

+1

aslında gerçekten kavşakları bulmak için çalışıyorsunuz:

img = imread('qGs5t.png'); % Load RGB image bw = ~im2bw(img); % Convert to black and white and invert bw = imclose(bw, strel('disk', 3)); % Morphological close to remove noise distImage = bwdist(~bw); % Distance transform maxDist = double(max(distImage(:))); % Find maximum distance measure diamImage = 2.*bw.*imdilate(distImage, strel('disk', floor(maxDist))); % Dilate and mask imagesc(diamImage); % Display image colorbar; % Display color bar dcmObj = datacursormode(gcf); % Create data cursor object... set(dcmObj, 'Enable', 'on'); % ... and enable to select points 

Ve burada seçilen bir nokta ile görüntü bu ("Index" değeri yaklaşık çapıdır)? Belki de çizgi kalınlığında atlayıştan ziyade iskeletleme ve kavşak aramayı düşünün. –

cevap

2

çözünürlük ve kalınlık "yeterince büyük" olduğunda basit kesmek vardır :

1), 0 ile 180 arasında, her açıda bu noktadan bir hat üzerinden uzanan ve orijinal çizgi ile kısa örtüşme sonuçlanır satırı bulun Kalınlık

2) üzerinden yayılan olacakdaire hattı ile artık üst üste olmayan zaman bu noktada, çember, yeniden merkezi tam bir örtüşmeye sahip olduğu için. imkansız olduğunda yeniden merkezini için tam çakışma var artık, öyle ki, o zaman yine bir çakışma var başardı çapı olan hattın en iyi tahmin hat kalınlığı bir tahmin olduğunu göstermek için

1

Tek yön kalınlığı daha sonra, uygun olarak her bir nokta için, en yakın kenarına mesafe hesaplamak üzerinden hat genişliği boyunca (çizgisinin merkezi boyunca uzanan) maksimum değerleri pürüzsüz imdilate kullanımı bwdist kullanımı. Ardından (katıldığında gbi çapları arasındaki geçişler yakınında biraz kapalı olacaktır) cihazın yaklaşık çapı görmek için hat üzerinde bir nokta seçebilir. İşte bir örnek:

enter image description here

+0

Ama otomatik olmasını istiyorsanız, kendi başına hatlarının çapını ayıklar, sonra – AlexZ

+0

@AlexZ liste veya HashMap kaydedin (satır tanımlayıcı olan bilir ve neler kalınlığı): İsterseniz Otomatikleştirmek için, nasıl yapılmasını istediğin konusunda daha spesifik olmalısın. Çapın ölçüleceği hatlar boyunca puanlar verecek misiniz? Katıldıkları noktalarda çizgiler kırılmasını ve her segment için ayrı bir çap ölçümü yapılmasını ister misiniz? Çizginin çapı, uzunluğu boyunca maksimum veya ortalama çap olarak mı bildirilmelidir? – gnovice