我有一大堆图像,显示了一个带有一些黑色 Blob 的条形,其位置随时间而变化(参见图 b)。为了检测 Blob ,我现在使用强度阈值(图中的 c,其中低于阈值的所有强度值都设置为 1),然后使用下面的 Matlab 代码在二值图像中搜索 Blob 。正如您所看到的,二值图像非常嘈杂,使 Blob 检测过程变得复杂。您对如何改进形状检测有什么建议,也许包括一些机器学习算法?谢谢!
代码:
se = strel('disk',1);
se_1 = strel('disk',3);
pw2 = imclose(IM,se);
pw3 = imopen(pw2,se_1);
pw4 = imfill(pw3, 'holes');
% Consider only the blobs with more than threshold pixels
[L,num] = bwlabel(pw4);
counts = sum(bsxfun(@eq,L(:),1:num));
number_valid_counts = length(find(counts>threshold));
最佳答案
这可能会有所帮助。
提取要提取的 Blob 边界的纹理特征。这可以使用 Local binary patterns 来完成。还有很多其他的纹理特征,可以去详细调查here 。
然后用它们来训练二元分类器。
关于python - 使用机器学习进行 Blob 检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25963405/