裁剪图像#
在处理显微镜图像时,处理整个图像通常意义有限。我们通常会裁剪出感兴趣的区域并对其进行详细处理。
from skimage.io import imread, imshow
image = imread("../../data/blobs.tif")
在裁剪图像之前,我们可能想知道它的精确形状(尺寸):
image.shape
(254, 256)
回顾:使用imshow进行可视化:
imshow(image)
<matplotlib.image.AxesImage at 0x2448a01e9d0>
裁剪图像的工作方式与裁剪列表和元组完全相同,通过使用索引来指定要使用的元素范围:
cropped_image1 = image[0:128]
imshow(cropped_image1);
mylist = [1,2,2,3,4,5,78]
要在第二个维度上也裁剪图像,我们在方括号中添加一个,:
cropped_image2 = image[0:128, 128:]
imshow(cropped_image2);
子采样图像#
也可以像处理列表和元组一样指定步长。从技术上讲,我们在这种情况下是对图像进行子采样。我们以5为步长采样原始像素的子集:
sampled_image = image[::5, ::5]
imshow(sampled_image);
翻转图像#
负步长会翻转图像。
flipped_image = image[::, ::-1]
imshow(flipped_image);
练习#
打开banana020.tif数据集并裁剪出香蕉片所在的区域。