欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

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

时间:2023-04-25

目录

扩展缩放

平移

旋转

扩展缩放

import cv2img = 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 cv2import numpy as npimg = 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 cv2import numpy as npimg = 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()

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。