首先解释上一篇文章详解Python科学计算扩展库numpy中的矩阵运算(1)最后的习题,该问题答案是10 ** 8 = 100000000,原因在于Python中的运算符**是从右往左计算的,这在Python运算符中算是一个特例。
--------------分割线--------------
读取一幅图像的内容,将其按象限分为4等份,然后1、3象限内容交换,2、4象限内容交换,生成一幅新图像。本文主要演示扩展库pillow中Image对象的crop()和paste()两个方法的用法。
from PIL import Image
im = Image.open('test.bmp')
size = im.size
# 获取4个象限中的子图
box1 = (0, size[1]//2, size[0]//2, size[1])
region1 = im.crop(box1)
box2 = (0, 0, size[0]//2, size[1]//2)
region2 = im.crop(box2)
box3 = (size[0]//2, 0, size[0], size[1]//2)
region3 = im.crop(box3)
box4 = (size[0]//2, size[1]//2, size[0], size[1])
region4 = im.crop(box4)
# 交换象限
im.paste(region1, box3)
im.paste(region3, box1)
im.paste(region2, box4)
im.paste(region4, box2)
im.save('result.bmp')
im.close()
原始图像为:
生成的新图像为:
今天实在太忙了,没有练习题。