onl*_*app 1 matlab image-processing
我有这样的图像.我想找到笔记的位置.找到它们的最佳方法是什么?(它们不是圆形,它们太小,所以circlefinder找不到它们!)

这里有一些代码可以让你去...那不是很完美,但它是一个有趣的哈哈.
我所做的是用磁盘结构元素侵蚀图像,直到图像中剩下的形状看起来最像圆形.然后我再次被侵蚀,但这次是一个线条结构元素,其取向与笔记的角度接近; 我认为它大约是15度.
之后,调用regionprops获取质心,然后绘制它们.
码:
clear
clc
BW = im2bw(imread('Notes.png'));
BW = imclearborder(BW);
%//Erode the image with a disk structuring element to obtain circleish
%// shapes.
se = strel('disk',2);
erodedBW = imerode(BW,se);
Run Code Online (Sandbox Code Playgroud)
这erodedBW看起来像这样:

%// Erode again with a line oriented at 15 degrees (to ~ match orientation of major axis of notes...very approximate haha)
se2 = strel('line',5,15);
erodedBW2 = imerode(erodedBW,se2);
Run Code Online (Sandbox Code Playgroud)
erodedBW2 看起来像这样:

然后找到质心并绘制它们
S = regionprops(erodedBW2,'Centroid');
figure;
imshow(BW)
hold on
for k = 1:numel(S)
scatter(S(k).Centroid(:,1), S(k).Centroid(:,2),60,'filled')
end
Run Code Online (Sandbox Code Playgroud)
输出:

没有检测到空注释,但我猜测这可以使用其他形态操作来管理.
希望有所帮助!