Sorting 按顺序对连接的组件进行排序
我有一个关于连接组件的问题。我有一个二进制图像(仅0和1)我从matlab运行函数: f= [L num]=bwlabel(f) 假设他们给了我答案:Sorting 按顺序对连接的组件进行排序,sorting,image-processing,bounding-box,Sorting,Image Processing,Bounding Box,我有一个关于连接组件的问题。我有一个二进制图像(仅0和1)我从matlab运行函数: f= [L num]=bwlabel(f) 假设他们给了我答案: 1 0 0 4 0 0 0 5 0 0 1 1 0 4 4 4 0 0 5 0 0 0 0 0 0 0 0 5 5 5 2 0 0 0 6 0 5 0 5 5 2 2 0 0 0 0
1 0 0 4 0 0 0 5 0 0
1 1 0 4 4 4 0 0 5 0
0 0 0 0 0 0 0 5 5 5
2 0 0 0 6 0 5 0 5 5
2 2 0 0 0 0 0 5 5 5
0 0 0 5 0 0 5 0 0 0
0 0 0 5 0 5 5 0 7 7
3 3 0 0 5 0 0 0 7 0
3 3 0 5 5 5 0 7 0 0
3 3 0 0 5 0 0 0 7 0
但是你可以在这个结果中看到,矩阵的顺序是跟在列后面的。现在我想把它改成顺序行,意思是数字4是2,数字5是3。。。等等。
顺序为左->右和上->下。我该怎么做(阅读的顺序)
多谢各位
f=f';
[L num]=bwlabel(f);
L=L';
这能解决您的问题吗?一个简单的解决方案是在标签之前横切图像,然后再横切。请参阅答案您是否正在尝试阅读文本,如您发布的示例图像?如果是这样的话,请在问题中发布这些图片。很抱歉,这不能解决我的问题,因为如果我用这种方式处理图片:![原始图像][1]第一个-第二个-第三个连接的组件是:F-S-l,如下图所示:!这是错误的,因为我想要1-2-3-。。。是H-a-w-a-(一点)-(一点)-)破折号-I-I-s。。。谢谢你的帮助,但这是不对的,你还有别的办法吗?[1] :[2]:@user3607620您所问的问题的答案是正确的。将
F
标记为第一个组件的原因是F
是在图像的第一行上找到的第一个组件。修复此问题(使H
成为第一行中找到的第一个组件)与您所问的问题有很大不同。@在给出的问题的答案正确之前,请使用3607620作为裁判。你在这篇评论中所展示的内容与问题中所展示的内容不同,也没有以相同的方式解决。如果这是你想要标记的图像,你应该在之前展示它们。如果你仔细观察,你会发现F首先被识别,因为第一个非零行属于F,正如烧杯所解释的。我可以给你一个解决这个问题的想法,尽管如果问题更复杂,与你的问题完全不同,不应该放在这里(注意:问题将是I和dash的要点)
f=f';
[L num]=bwlabel(f);
L=L';