2017-05-07 120 views
3

我有一系列的線的圖像,如下圖所示:發現一系列的圖像的曲線的交叉點:Matlab

lines example

我想知道是否有一些方法找到所有線的交點。

我正在檢查另一篇文章,他們提供了一種方法來查找交點,但一旦圖像被分割,我認爲它有噪音或類似的東西......我將從一個簡單的圖像開始,找到每個交點。

我的主要想法是解決「方程組」,但我認爲對於具有許多交叉點的圖像太困難了,我不知道是否有任何方法可以找到所有交點。

+0

你有線條的方程,或者是你分析圖像? – Wolfie

+1

我正在分析一個圖像,但我從簡單的例子開始,讓我瞭解如何使用不受控制的圖像 – AlexZ

回答

4

我假設你沒有線方程。我用鏤空和過濾來檢測有多條線穿過它們的小區域。我不知道,這將是在嘈雜的形象那麼簡單,但值得一試:

im = im2double(rgb2gray(imread('lines.png'))); 
% binarize black lines 
bw = im == 0; 
% skelatonize lines 
sk = bwmorph(bw,'skel',inf); 
% filter skeleton with 3X3 ones filter 
A = imfilter(double(sk),ones(3)); 
% find blobs greater than 4 - more than one line crossing the filter 
B = A > 4; 
% get centroids of detected blobs 
C = regionprops(B,'Centroid'); 
Cent = reshape([C.Centroid],2,[]).'; 
% plot 
imshow(im) 
hold on; 
plot(Cent(:,1),Cent(:,2),'gx','LineWidth',2) 

enter image description here