【发布时间】:2015-04-03 20:46:51
【问题描述】:
我正在创建一个图像分析工具(使用 Python)。 我已经有了由 Otsu 阈值处理产生的分段图像。 使用 OpenCv kmeans 函数,我将图像中的颜色数量减少到 4。 K-means 集群之一应该是黑色背景(BGR 值 [0,0,0] )。
由于 K-means 算法,背景像素现在不是 [0,0,0],而是显示例如[0,2,1]。
我希望这个背景集群再次变成绝对黑色。图像表示为 3D numpy 数组。目前我只是在迭代调整背景:
X, Y, Z = img.shape
for xi in xrange(X):
for yi in xrange(Y):
if all([value < 10 for value in img[xi][yi]]):
img[xi][yi] = np.zeros((1,3), dtype=int)
这是一个相对缓慢的操作。有没有更聪明的方法,可能使用专门的 OpenCV/Numpy 函数?
【问题讨论】: