OpenCv-Python学习笔记(六):几何变换

目录

扩展缩放

平移

旋转

扩展缩放

import cv2

img = cv2.imread("../data/image/6.png")
#设置缩放因子
res = cv2.resize(img,None,fx = 2,fy = 2,interpolation = cv2.INTER_CUBIC)
#获取图像的宽度和长度
height,width=img.shape[:2]
#直接指定缩放大小
res1=cv2.resize(img,(2*width,2*height),interpolation=cv2.INTER_CUBIC)
print(f"原图的大小:{img.shape}")
print(f"res的大小:{res.shape}")
print(f"res1的大小:{res1.shape}")

#原图的大小:(446, 364, 3)
#res的大小:(892, 728, 3)
#res1的大小:(892, 728, 3)


cv2.resize()函数,扩展缩放图片大小。
第一个参数表示输入图片。
第二个参数表示指定放大\缩小后的图片大小。
第三个参数表示X轴缩放因子,即图片缩放后的长度/图片原本的长度。
第四个参数表示Y轴缩放因子,即图片缩放后的高度/图片原本的高度。
第四个参数表示插值方法。
opencv提供五种插值方法,INTER_NEAREST、 INTER_LINEAR、INTER_AREA、INTER_CUBIC,和INTER_LANCZOS4,暂且不能理解这五种方法是什么意思,以后明白了在来补充。

平移

cv2.warpAffine()函数:平移图像。

第一参数表示输入图像。

第二个参数表示变换矩阵,例如,M= [[1,0,100],[0,1,5]]表示图像纵向移动100个像素,横向移动5个像素。

第三个参数表示输出图像的大小。

import cv2
import numpy as np
img = cv2.imread("../data/image/6.png")
# 获取图像的宽度和长度
height,width=img.shape[:2]
M = np.float32([[1,0,100],[0,1,5]])
res = cv2.warpAffine(img,M,(width,height))
cv2.imshow("img",img)
cv2.imshow("res",res)
cv2.waitKey()

旋转

cv2.getRotationMatrix2D()函数:旋转图片

第一个参数表示旋转中心点。

第二个参数表示旋转角度。

第三个参数表示旋转后的缩放因子。

可以通过设置旋转中心,缩放因子以及窗口大小来防止旋转后超出边界的问题。

import cv2
import numpy as np
img = cv2.imread("../data/image/6.png")

# 获取图像的宽度和长度
height,width=img.shape[:2]
M = cv2.getRotationMatrix2D(((width-1)/2.0,(height-1)/2.0),90,1)
res = cv2.warpAffine(img,M,(width,height))
cv2.imshow("img",img)
cv2.imshow("res",res)
cv2.waitKey()

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值