0

我知道scipy.ndimage.label如果背景颜色不是纯黑色,则无法标记。
所以我有一个黑色背景的图像,它不是纯黑色,所以我们不能假设所有像素中的所有 RGB 值都是(0,0,0)。

如何准备图像以便我可以使用ndimage.label

这是一个类似的图像进行测试:
测试图像 http://imageshack.us/a/img4/8661/backgrf.png
注意:
(1)图像从转换RGBPNG gray scale.
(2) 背景颜色不同。
(3) 将ndimage.label整个图像标记为一个对象。
谢谢

4

2 回答 2

1

您可以将所有小于某个阈值的值设置为 0,然后调用标签:

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
于 2012-10-09T02:31:05.763 回答
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)

让我知道这是否适合您。

于 2012-10-13T17:15:32.890 回答