【发布时间】:2017-07-18 20:07:41
【问题描述】:
我有一个大小为50000x50000 的图像。它有大约25000 连接不同的连接组件。我使用ndimage.label 标记它们中的每一个,然后找到非零点,最后得到最小 x、最大 x、最小 y 和最大 y 值。但是,我必须为每个25000 连接的组件找到这些坐标。这很昂贵,因为我必须在50000x50000 图像25000 次上运行np.nonzero。这是我刚才提到的代码的 sn-p。
im, _ = ndimage.label(im)
num_instances = np.max(np.max(im))
for instance_id in range(1,num_instances+1):
im_inst = im == instance_id
points = np.nonzero(im_inst) # running this is expensive as im is 50000x50000
cropped_min_x_1 = np.min(points[0])
cropped_min_y_1 = np.min(points[1])
cropped_max_x_1 = np.max(points[0])+1
cropped_max_y_1 = np.max(points[1])+1
有谁知道我可以做些什么来显着加快这个过程?
【问题讨论】:
标签: python image performance numpy matrix