我有一项任务需要分析一个填充有彩色形状的图像并突出显示图像中的蓝色圆圈。为此,我将图像拆分为其 RGB 通道,并创建了仅包含蓝色像素的二值图像。使用斑点检测,我设法分割图像并找到每个形状的圆度。但是,当我尝试在圆形上放置边界线时,它会将边界放置在所有形状周围,而不仅仅是圆形。代码的相关部分如下所示;
imshow(BBinEro)
for cnt = 1:length(BlueProps)
%disp(score);
if score(cnt) >= 0.98 %
text(BlueProps(cnt).Centroid(1),BlueProps(cnt).Centroid(2),num2str(score(cnt)),'color','red');
boundaries = bwboundaries(BBinEro);
numberOfBoundaries = size(boundaries);
hold on
for k = 1 : numberOfBoundaries
thisBoundary = boundaries{k};
if score(cnt) >= 0.98 %Only showing for circles
plot(thisBoundary(:,2), thisBoundary(:,1), 'g', 'LineWidth', 2);
end
end
hold off
end
end
“分数”是对斑点圆形度的度量。分数为 1 表示该 blob 是完美的圆形。程序显示圆形在其质心处的圆度;使用相同的 if 语句,我尝试在它们周围插入一条边界线。任何关于如何修复此代码以使其仅显示圆圈边界的建议或意见将不胜感激。
所附图像显示了程序当前正在执行的操作。我想摆脱三角形和正方形周围的绿色边界。