美文网首页
缩放变换

缩放变换

作者: 大龙10 | 来源:发表于2021-10-02 12:30 被阅读0次

《OpenCV轻松入门:面向Python》读书笔记
作者:李立宗
出版社:电子工业出版社
出版时间:2019-05

第5章 几何变换

  几何变换是指将一幅图像映射到另外一幅图像内的操作。OpenCV提供了多个与映射有关的函数,这些函数使用起来方便灵活,能够高效地完成图像的映射。

  根据OpenCV函数的不同,本章将映射关系划分为

  • 缩放、
  • 翻转、
  • 仿射变换、
  • 透视、
  • 重映射等。

5.1 缩放

1) 函数

在OpenCV中,使用函数cv2.resize()实现对图像的缩放,该函数的具体形式为:

dst=cv2.resize(src,dsize[ ,fx,[fy,[interpolation]]])

式中:

  • dst代表输出的目标图像,该图像的类型与src相同,其大小为dsize(当该值非零时),或者可以通过src.size()、fx、fy计算得到。
  • src代表需要缩放的原始图像。
  • dsize代表输出图像大小。
  • fx代表水平方向的缩放比例。
  • fy代表垂直方向的缩放比例。
  • interpolation代表插值方式,具体如表5-1所示。


    表5-1 插值方式

● 在shape属性中,第1个值对应的是行数,第2个值对应的是列数。
● 在dsize参数中,第1个值对应的是列数,第2个值对应的是行数。
在使用cv2.resize()函数时,要额外注意参数dsize的属性顺序问题。

2) 程序

【例5.2】设计程序,使用函数cv2.resize()完成一个简单的图像缩放。

import cv2
img=cv2.imread("test.bmp")
rows,cols=img.shape[:2]
size=(int(cols*0.9),int(rows*0.5))
rst=cv2.resize(img,size)
print("img.shape=",img.shape)
print("rst.shape=",rst.shape)

3) 结果

运行程序,结果如下:

img.shape= (512, 51, 3)
rst.shape= (256, 45, 3)

从程序可以看出:

  • 列数变为原来的0.9倍,计算得到51×0.9=45.9,取整得到45。
  • 行数变为原来的0.5倍,计算得到512×0.5=256。

相关文章

网友评论

      本文标题:缩放变换

      本文链接:https://www.haomeiwen.com/subject/zkbzgltx.html