Opencv学习七:几何变换

本文介绍了如何使用OpenCV进行图像的缩放和翻转操作。针对缩放,讲解了通过参数`dsize`指定图像大小和通过参数`fx`、`fy`设置缩放比例两种方法。对于图像翻转,提到了利用`cv2.flip()`函数实现水平、垂直或双向翻转,并解释了`flipCode`参数的意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、缩放

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

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

其中:

  1. dst代表目标图像,该图像类型与src相同,大小为dsize。
  2. src为需要缩放的原始图像。
  3. dsize代表输出图像大小。
  4. fx代表水平方向的缩放比例。
  5. fy代表竖直方向的缩放比例。

在cv2.resize()函数中,可以通过“参数dsize”或者“参数fx和fy”二者之一来指定

1.通过参数dsize指定

如果指定参数dsize的值,那么fx和fy就没有用了。

dsize内第一个参数对性的是图像的宽度(列),第二个参数对应的是图像的高度(行)。

指定参数dize的值是,x方向的缩放大小(参数fx)为:

(double)dsize.width/src.cols

同时,y方向的缩放大小(参数fy)为:

(double)dsize.height/src.rows

通过控制cv2.rsize()函数的dsize来完成图片的缩放:

import cv2
img = cv2.imread("C:\\Users\\asus\\Desktop\\logo.png")
rst = cv2.resize(img,(200,100))
cv2.imshow("img",img)
cv2.imshow("rst",rst)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

2.通过参数fx和fy指定

如果参数dsize是None,那么目标图像的大小通过参数fx和fy来决定,此时目标图像的大小为:

dsize = Size(round(fx*src.cols),round(fy*src.rows))

控制函数cv2.resize()函数的fx参数、fy参数完成图像的缩放:

import cv2
img = cv2.imread("C:\\Users\\asus\\Desktop\\logo.png")
rst = cv2.resize(img,None,fx=2,fy=0.5)
cv2.imshow("img",img)
cv2.imshow("rst",rst)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

二、翻转

在opencv中,图像翻转采用cv2.flip()函数实现,该函数能够实现图像在水平、垂直方向翻转,也可以两个方向同时翻转,语法结构为:

dst = cv2.flip( src, flipCode)
  • dst:目标图像
  • src:原始图像
  • flipCode:代表旋转类型,该参数意义如下

在这里插入图片描述

设计程序,使用cv2.flip()函数完成图像的翻转:

import cv2
img = cv2.imread("C:\\Users\\asus\\Desktop\\logo.png")
x = cv2.flip(img,0)     #绕x轴翻转
y = cv2.flip(img,1)     #绕y轴翻转
xy = cv2.flip(img,-1)   #绕x轴、y轴同时翻转
cv2.imshow("img",img)
cv2.imshow("x",x)
cv2.imshow("y",y)
cv2.imshow("xy",xy)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值