Feature detection

Biomedical Image Analysis in Python

Stephen Bailey

Instructor

Edges: sharp changes in intensity

Kernel for edge detection

Biomedical Image Analysis in Python
im=imageio.imread('foot-xray.jpg')

weights = [[+1, +1, +1], [ 0, 0, 0], [-1, -1, -1]]
edges = ndi.convolve(im, weights)
plt.imshow(edges, cmap='seismic')

foot-edges

Biomedical Image Analysis in Python

Sobel filters

sobel-horizontal

sobel-vertical

Biomedical Image Analysis in Python

Sobel filters

ndi.sobel(im, axis=0)

edges-horizontal

ndi.sobel(im, axis=1)

edges-vertical

Biomedical Image Analysis in Python

Sobel filter magnitude

Combine horizontal and vertical edge data by calculating distance:

$$z = \sqrt{x^2 + y^2}$$

edges0=ndi.sobel(im, axis=0)
edges1=ndi.sobel(im, axis=1)

edges=np.sqrt(np.square(edges0) + 
              np.square(edges1))
plt.imshow(edges, cmap='gray')

combined-edges

Biomedical Image Analysis in Python

Let's practice!

Biomedical Image Analysis in Python

Preparing Video For Download...