Python数字图像处理,python图像放大
本文主要介绍python数字图像处理中实现图像变形和缩放的例子。有需要的朋友可以借鉴一下,希望能有所帮助。祝你进步很大,早日升职加薪。
变换模块1的
目录
skimage,改变图片大小resize2,缩放rescale3,旋转rotate4和图像金字塔。
skimage的transform模块
skimage变换模块用于图像变形和缩放,功能多,功能全。
1、改变图片尺寸resize
函数格式为:
skimage.transform.resize(image,output_shape)
Image:需要调整大小的图像
Output_shape:新图片尺寸
从skimage导入转换,数据
将matplotlib.pyplot作为plt导入
img=data.camera()
dst=transform.resize(img,(80,60))
plt.figure(调整大小)
plt.subplot(121)
plt.title(调整大小前)
plt.imshow(img,plt.cm.gray)
plt.subplot(122)
plt.title(调整大小前)
plt.imshow(dst,plt.cm.gray)
plt.show()
相机图像从原来的512*512大小更改为80*60大小。从下图中的坐标标尺,我们可以看出:
2、按比例缩放rescale
函数格式为:
skim age . transform . rescale(image,scale[,])
Scale参数可以是单个浮点数,表示缩放倍数,也可以是浮点元组,如[0.2,0.5],表示行数和列数分别缩放。
从skimage导入转换,数据
img=data.camera()
Print(img.shape) #原始图像尺寸
Print (transform.rescale (img,0.1)。shape) #缩小到原始图像大小的0.1倍。
Print (transform.rescale (img,[0.5,0.25])。shape) #缩小为原图行数的一半,列数的四分之一。
Print (transform.rescale (img,2))。shape) #被放大到原始图像的两倍大小。
结果是:
(512, 512)
(51, 51)
(256, 128)
(1024, 1024)
3、旋转 rotate
skimage.transform.rotate(图像,角度[,],resize=False)
angle参数是一个浮点数,表示旋转的角度。
Resize用于控制旋转时是否改变大小,默认值为False。
从skimage导入转换,数据
将matplotlib.pyplot作为plt导入
img=data.camera()
Print(img.shape) #原始图像尺寸
Img1=transform.rotate(img,60) #旋转90度而不改变大小。
打印(img1.shape)
Img=transform.rotate (img,30,resize=true) #改变大小时旋转30度。
打印(img2.shape)
plt.figure(调整大小)
plt.subplot(121)
plt.title(旋转60 )
plt.imshow(img1,plt.cm.gray)
plt.subplot(122)
plt.title(“旋转30度”)
plt.imshow(img2,plt.cm.gray)
plt.show()
结果是3360。
4、图像金字塔
一种有效而简单的多分辨率图像解释结构是图像金字塔。金字塔最初用于机器视觉和图像压缩。图像的金字塔是以金字塔形状排列的分辨率逐渐降低的一系列图像。金字塔的底部是要处理的图像的高分辨率表示,而顶部是低分辨率近似。当您移动到金字塔的上层时,尺寸和分辨率会降低。
这里,我们举一个高斯金字塔的应用例子。功能原型是:
skim age . transform . pyramid _ Gaussian(image,downscale=2)
缩减控制金字塔的缩放比例。
将numpy作为np导入
将matplotlib.pyplot作为plt导入
从skimage导入数据,转换
image=data . aerospace()#加载宇航员图片
Rows,cols,dim=image.shape #获取图片的行数、列数和通道数。
pyramid=tuple(transform . pyramid _ Gaussian(image,downscale=2)) #生成高斯金字塔图像
#共生成为log(512)=9个金字塔图像,加上10个原始图像,金字塔[0]-金字塔[1]
Composite _ image=np.ones ((rows,cols colls/2,3),dtype=np.double) #生成背景
Composite _ image [3360Rows,3360Cols,]=pyramid [0] #融合原始图像
i_row=0
对于金字塔中的p[1:]:
n_rows,n_cols=p.shape[:2]
composite _ image[I _ row 3360 I _ rown _ rows,cols:colsn _ cols]=p #九个金字塔图像循环融合。
i_row=n_rows
plt.imshow(复合图像)
plt.show()
在上图中,有10个金字塔图像。下标0表示原始图像,每个后续层的图像行和列变为前一层的一半,直到变为1。
除了高斯金字塔,还有其他金字塔,如:
skim age . transform . pyramid _ laplacian(image,downscale=2):
以上是python数字图像处理实现图像变形和缩放的详细内容。关于python数字图像变形和缩放的更多信息,请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。