我一直在研究图像分割问题,似乎无法为我最近的问题得到一个好主意。基于位置的图像中的对象分割(在Matlab中)
这是我的时刻:(这只是一个普通的例子)
是否有一个强大的算法为不属于该组的,可以自动丢弃右方其他四个方块(我知道应该总是堆叠在一起)或多或少堆叠在一起?
它有时可能是这样的情况,其中一个堆叠的盒子没有找到,所以有一个间隙或伪造盒子在左侧。
非常感谢您的输入。
我一直在研究图像分割问题,似乎无法为我最近的问题得到一个好主意。基于位置的图像中的对象分割(在Matlab中)
这是我的时刻:(这只是一个普通的例子)
是否有一个强大的算法为不属于该组的,可以自动丢弃右方其他四个方块(我知道应该总是堆叠在一起)或多或少堆叠在一起?
它有时可能是这样的情况,其中一个堆叠的盒子没有找到,所以有一个间隙或伪造盒子在左侧。
非常感谢您的输入。
如果你有制作喜欢你的榜样BW图像的方式:然后
s = regionprops(BW, 'centroid');
centroids = cat(1, s.Centroid);
xpos = centroids(:,1);
应该是盒子的x位置。
从这里您可以选择多种方式,具体取决于您是否总是只有一个分离框和一组分组框。对于“一个假的盒子远,休息紧密靠在一起”的情况下(从MATLAB远,所以这是未选中),你甚至可以做的简单的东西:
d = abs(xpos-median(xpos));
bogusbox = centroids(d==max(d),:);
imshow(BW);
hold on;
plot(bogusbox(1),bogusbox(2),'r*');
制作东西是稳健为您的实际使用情况,其我假设不包括整洁的盒子是另一回事;正如评论中所建议的那样,您需要一些关于您的好盒子的定位是多么接近的概念,以及如何分离伪盒子。
例如,可以使用其他regionprops
测量,如'BoundingBox'
或'Extrema'
并定义某种盒子沿x相对多少重叠以彼此的测量,然后使用该(这可以由即使工作组图像中有多个堆栈)。
你知道堆叠盒的偏差是什么吗?什么“或多或少的意思”?你有多个图像,以便你可以派生一些统计数据或类似的? – kkuilla
偏差我不知道数字,但如果以前的算法是应该的,那么这些方框至少需要重叠3/4。我有5个不同质量的图像,这也导致了我的其他问题。有时候堆栈中有多个盒子没有找到(总是只有一个“真正的”堆栈),这又导致盒子不像前面提到的那样重叠。只是为了澄清,理论上可能有两个或更多的假箱子,尽管这是不可能的。 – lordylike