Python数字图像处理,python图像放大

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: