我知道如果背景颜色不是纯黑色,则scipy.ndimage.label
无法标记
所以我有一个黑色背景的图像,它不是一个纯黑色,所以我们不能假设所有RGB值都是(0,0,0)在所有像素中。
如何准备图像以便我可以使用ndimage.label
??
这是一个类似的图像来测试:
test image http://imageshack.us/a/img4/8661/backgrf.png
注:
(1)图像已从RGB
转换为PNG gray scale
(2)背景颜色不同
(3)ndimage.label
将整个图像标记为一个对象
感谢
答案 0 :(得分:1)
您可以将小于某个阈值的所有值设置为0,然后调用label:
In [16]: img2 = img.copy() # Copy the image.
In [17]: img2[img2 < 20] = 0 # Set all values less than 20 to 0.
In [18]: lbl, n = label(img2)
In [19]: n
Out[19]: 2
答案 1 :(得分:1)
这是一种简单的方法,可以增加对比度,使任何“光”变为白色,任何“暗”变为黑色。假设8位灰度并在@Warren Weckesser的答案中调整代码:
img2 = img.copy() # Copy the image.
img2[img2 < 128] = 0 # Set all values less than 128 to 0 (black).
img2[img2 >= 128] = 255 # Set all values equal or greater than 128 to 255 (white).
lbl, n = label(img2)
请告诉我这是否适合您。