At the moment there is no official matplotlib release for python 3 (and no PIL).
However matplotlib dev should be compatible.
You can use matplotlib and numpy indexing to achieve this without using other tools.
However matplotlib only supports png natively.
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import matplotlib.cbook as mplcbook
lena = mplcbook.get_sample_data('lena.png')
# the shape of the image is 512x512
img = mpimg.imread(lena)
fig = plt.figure(figsize=(5.12, 5.12))
ax1 = plt.axes([0, 0, 1, 1], frameon=False)
ax1.imshow(img)
center = (300, 320) # center of the region
extent = (100, 100) # extend of the region
ax2 = plt.axes([0.01, 0.69, 0.3, 0.3])
img2 = img[(center[1] - extent[1]):(center[1] + extent[1]),
(center[0] - extent[0]):(center[0] + extent[0]),:]
ax2.imshow(img2)
ax2.set_xticks([])
ax2.set_yticks([])
plt.savefig('lena.png', dpi=100)
