In [1]:
%matplotlib inline
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

In [2]:
im = Image.open('testim2.png')
im = np.asarray(im.convert('L').getdata()).reshape(im.size[::-1]).astype('uint8')
print(im.dtype, im.shape)
plt.imshow(im, cmap=plt.cm.gray)


uint8 (261, 472)
Out[2]:
<matplotlib.image.AxesImage at 0x81cbe80>

In [3]:
def get_bitwise_im(im, bit):
    return (np.bitwise_and(im, 0x01 << bit) * 255).astype('uint8')

In [4]:
plt.figure(figsize=(16, 5))
for i in range(8):
    plt.subplot(241+i)
    plt.title('bit %d' % i)
    plt.imshow(get_bitwise_im(im, i), cmap=plt.cm.gray)



In [ ]: