我想在图像中标记每行具有唯一编号。我使用了这种标记算法(如下所示),但没有正确标记线条。请帮忙。并且保存的图像也显示在行上的数字/标签。
码
imBin = imread('lines.png');
L = bwlabel(imLines);
s = regionprops(L, 'Centroid');
imwrite(imLines, 'labeled-lines.png');
figure, subplot(1,2,1), imshow(img), title('original image');
subplot(1,2,2), imshow(imLines), title('image with lines');
hold on
for k = 1:numel(s)
c = s(k).Centroid;
text(c(1), c(2), sprintf('%d', k), ...
'HorizontalAlignment', 'center', ...
'VerticalAlignment', 'middle');
end
hold off
输出:
答案 0 :(得分:0)
应用函数bwlabel将“标记”二进制图像。
如果任意两个白色像素之间存在白色连接,则它们将属于同一区域,因此获得相同的标签。
该算法不关心任何形状。什么是连接属于一起。
所以你不可能指望它们如果相互接触,就会给每个“线”一个单独的数字。
如果你想让线条适用Hough变换或类似的东西。
对于显示问题,如评论和链接答案中已经提到的,您只需更改数字颜色和/或将文本位置移动到白色上。您无法在黑色背景上看到黑色数字。