我试图通过标记像素和删除小对象来分割它后,从我的图像中删除不需要的像素误差。 但是,它仍然会返回一些误报。
我正在尝试实施paper中描述的以下算法:
n, components ← connectedComponents(segmentedImage)
components ← deleteSmallComponents(components, kMinimumArea)
if size(components) == 1 then
return components[0]
end if
inters ← empty
areas ← empty
for all component in components do
inters ← inters ∪ getImageMarginIntersections(component)
areas ← areas ∪ getComponentArea(component)
end for
noisyObject ← max(inters)
return max(areas − noisyObject)
到目前为止,我已经实施了以下部分内容:
def undesired_objects ( image ):
components, n = ndimage.label( image )
components = skimage.morphology.remove_small_objects( components, min_size = 150 )
plot.imshow( components )
plot.show()
我无法插入图片,imgur总是返回错误。因此,如果您想查看example。
第一张Leaf是原始图像,第二张是分割图像,第三张是标记图像,最后一张是最终结果,仍然有一些误报[黄色像素]。