【发布时间】:2015-03-17 22:28:10
【问题描述】:
我正在尝试使用 Python 来检测白色表面上有多少物体。示例图片见本文末尾。
我想知道我应该怎么做,主要是因为背景是白色的,而且大多数时候它被检测为前景。
根据本教程 (http://pythonvision.org/basic-tutorial),我现在在 Python 中拥有的内容使用多个库并将白色检测为对象,因此计数为 1,这些工具被检测为背景,因此被忽略:
dna = mahotas.imread('dna.jpeg')
dna = dna.squeeze()
dna = pymorph.to_gray(dna)
print dna.shape
print dna.dtype
print dna.max()
print dna.min()
dnaf = ndimage.gaussian_filter(dna, 8)
T = mahotas.thresholding.otsu(dnaf)
labeled, nr_objects = ndimage.label(dnaf > T)
print nr_objects
pylab.imshow(labeled)
pylab.jet()
pylab.show()
是否有任何选项可以将白色部分作为背景并将工具作为前景?
提前致谢!
示例图片:
红色为前景蓝色背景的分割图(少数工具合并不成问题):
【问题讨论】:
-
你能把分割后的图片也发一下吗?
-
使用分段图像编辑问题!
-
dnaf < T应该反转得到的布尔矩阵 -
您说的完全正确,完美运行!老实说,我不完全确定 > T 是什么意思,你能解释一下吗?
-
它将数组(图像)的每个单元格与 T 进行比较。结果数组根据结果填充为 1 或 0。
标签: python image algorithm mahotas