基于opencv库对图像进行平移,旋转以及翻转

基于opencv库对图像进行平移,旋转以及翻转,第1张

1.平移:

在opencv中,通过warpAffine函数实现图像平移,格式为:

# cv2.warpAffine(src,M,dsize[,dst[,flags[,borderMode[,borderValue]]]])

其中,img表示输入的图像,M表示用于变换的矩阵,dsize表示输出图像的大小,dst表示输出的图像,flags表示进行矩阵变换的方法,borderMode表示边界填充模式,borderValue表示边界填充值。

原图:

平移图像的代码为:

import cv2                           #导入需要用到的库
import numpy as np                   
img=cv2.imread('D:\pht/Taylor.jpg')    #导入原图像
H=np.float32([[1,0,100],[0,1,100]])   #定义平移矩阵
rows,cols=img.shape[:2]               #获取图像高宽(行列数)
res=cv2.warpAffine(img,H,(cols,rows)) #进行矩阵变化
cv2.imwrite('D:\pht/Taylor_res.jpg',res) #写入图像到路径

运行后的图片为:

2.旋转

在Opencv中,通过getRotationMatrix2D函数实现获取图像的旋转变化矩阵,格式为:

cv2.getRotationMatrix2D(center,angle,scale)

其中,center表示旋转的中心点。

angle表示旋转角度。

scale表示缩放的比例。

旋转图像的代码为:

import cv2
img=cv2.imread('D:\pht/Taylor.jpg')
height,width=img.shape[:2]                    #获取图像高宽(行列数)
matRotate=cv2.getRotationMatrix2D((width*0.5,height*0.5),45,1) #计算旋转变化矩阵
img_rotate=cv2.warpAffine(img,matRotate,(width,height))      #旋转
cv2.imwrite('D:\pht/Taylor_rotate.jpg',img_rotate)

运行后的图像为:

3.翻转

在Opencv中,通过flip函数实现图像翻转,其基本格式为:

cv2.flip(src,flipCode[,dst])

其中,src表示输入图像。

flipCode表示翻转类型,当参数大于等于 1 时,表示水平翻转;当等于 0 时,
表示垂直翻转;当小于等于-1 时,表示水平垂直翻转。

dst表示输出图像。

翻转图像的代码为:

import cv2   #导入cv2库
image=cv2.imread('D:\pht/Taylor.jpg') #读取原图片

(1)水平翻转

h_flip=cv2.flip(image,1)   #水平翻转
cv2.imwrite('D:\pht/Taylor_h.jpg',h_flip)

(2)垂直翻转

v_flip=cv2.flip(image,0)    #垂直翻转
cv2.imwrite('D:\pht/Taylor_v.jpg',v_flip)

(3)水平垂直翻转

hv_flip=cv2.flip(image,-1)
cv2.imwrite('D:\pht/Taylor_hv.jpg',hv_flip)

运行后的图像依次为:

 

 

 就当是学习笔记了,到这就结束啦!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/922144.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存