1
我想从图像中提取一些特征,但每个提取的特征都很小。提取较大特征的最简单方法似乎是使用较大的结构元素,但当ITER > 1
时,以下代码失败。图像特征检测与大结构元素
from scipy import ndimage,misc
lena=misc.lena().astype(float64)
lena/=ndimage.maximum(lena)
lena=lena>0.54# convert to binary image
# =====================
ITER=1 # || FAILS WHEN ITER > 1 ||
# =====================
struct=ndimage.generate_binary_structure(2,1)
struct=ndimage.iterate_structure(struct,ITER)
lena_label,n =ndimage.label(lena,struct)
slices=ndimage.find_objects(lena_label)
images=[lena[sl] for sl in slices]
imshow(images[0])
。
RuntimeError: structure dimensions must be equal to 3
我想使用类似于由'ndimage.iterate_structure(struct,2)'生成的结构的连接。那样,如果两个特征被一个像素分开,则它们被认为是相同的特征。膨胀与使用更大的结构具有完全相同的效果吗? – Navin 2013-02-21 00:50:36
如果用一个基本正方形扩张,这两个由一个像素分隔的特征将被连接起来。因此,它们将被标记为单个功能。 – mmgp 2013-02-21 00:51:53
好的,这似乎工作。 – Navin 2013-02-21 02:14:59