Boolean indexing is indexing based on a boolean array and falls under the category of fancy indexing.
We will apply this indexing technique to an image:
Image with dots on the diagonal.
This is in some way similar to the Fancy indexing recipe in this chapter. This time, we select modulo
4
points on the diagonal of the image:def get_indices(size): arr = np.arange(size) return arr % 4 == 0
Then we just apply this selection and plot the points:
lena1 = lena.copy() xindices = get_indices(lena.shape[0]) yindices = get_indices(lena.shape[1]) lena1[xindices, yindices] = 0 plt.subplot(211) plt.imshow(lena1)
Select the array values between quarter and three quarters of the maximum value, and set them to
0
:lena2[(lena > lena.max()/4) & (lena < 3 * lena.max()/4)] = 0
The plot with the two new images will look like what is shown in the following screenshot:
Here is the complete code for this recipe from the
boolean_indexing.py
file in this book's code bundle...