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)
运行后的图像依次为:
就当是学习笔记了,到这就结束啦!