Posts

Showing posts from February 2, 2019

numpy vectorize / more efficient for loop

Image
1 1 I am performing erosion on an image. The image has been padded accordingly. In a nutshell, I have a cross element(+) that I put on every pixel of the image and pick the lowest value for that pixel from pixel above, below, right, left and itself. It is inefficient and I can't figure out a vectorized version. It must be possible since all calculations are done independently of each other. for y in range(t,image.shape[0]-b): for x in range(l,image.shape[1]-r): a1 = numpy.copy(str_ele) for filter_y in range(a1.shape[0]): for filter_x in range(a1.shape[1]): if (not (numpy.isnan(a1[filter_y][filter_x]))): a1[filter_y][filter_x] = str_ele[filter_y][filter_x]*image[y+(filter_y-str_ele_center_y)][x+(filter_x-str_ele_center_x)] er