from PIL import Image from scipy import signal H=array([[-1,0,1],[-2,0,2],[-1,0,1]]) im1=array(Image.open('Material/lena.jpg').convert('L')) im2=signal.fftconvolve(im1,H,"same") gray() imshow(im2) show() # scipy.signal.fftconvolve与scipy.signal.convolve两个均可实现对自定的卷积核H进行二维卷积计算 # 第三个参数"same"表示相同大小,还有"full"等,具体差别可自行实践 # 二维的卷积运算还有signal.sepfir2d(),可以传入三个参数,后两个参数制定行和列的卷积和(两个方向上的卷积是可以不同的,分别制定卷积和序列)。
from scipy import ndimage from PIL import Image H=array([[-1,0,1],[-2,0,2],[-1,0,1]]) im1=array(Image.open('Material/lena.jpg').convert('L')) im3=ndimage.affine_transform(im1,H[:2,:2],(H[0,2],H[1,2])) gray() imshow(im3) show() # 通过scipy.ndimage.affine_transform可以实现图像的仿射变换 # 第一个参数代表处理的图像即原图像,第二个参数是旋转矩阵2by2,第三个参数是平移(纵向,横向)