Ale*_*exZ 4 matlab intersection image-processing curves
我有一个带有一系列线条的图像,如下所示:
我想知道是否有某种方法可以找到所有线的交点。
我正在检查另一个帖子,他们提供了一种找到交叉点的方法,但是一旦图像被分割,我想它有噪音或类似的东西......我将从一个简单的图像开始找到每个交叉点。
我的主要想法是解决“方程组”,但我认为对于具有许多交点的图像来说太难了,我不知道是否有任何方法可以找到所有交点。
我假设你没有线方程。我使用骨架化和过滤来检测有不止一条线穿过它们的小区域。我不确定对于嘈杂的图像是否会如此简单,但值得尝试:
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
386 次 |
| 最近记录: |