python Opencv 学习 (四) :图片的空间的移动
图片的 移动 包括了
平移 旋转 放大 等
图片 提供
平移
代码
def img_translate(img):
row,col,chanel=img.shape
M=np.float32([[1,0,200],[0,1,300]]) #仿射变换的矩阵 平移 X 200 Y 300
img_out=cv.warpAffine(img,M,(col,row)) # 进行仿射变换 =线性变换 平移
cv.namedWindow('out',cv.WINDOW_AUTOSIZE)
cv.imshow('out',img_out)
img_translate(img)
旋转
代码
def img_rotate(img):
row,col,chanel=img.shape
M=cv.getRotationMatrix2D(((col-1)/2.0,(row-1)/2.0),-10,1) #旋转矩阵
img_out=cv.warpAffine(img,M,(col,row)) # 进行仿射变换
cv.namedWindow('out',cv.WINDOW_AUTOSIZE)
cv.imshow('out',img_out)
img_rotate(img)
缩小放大
代码
w,h,c=img.shape
#比例缩小图像 img,变换后的大小为(640,360)
img_scl=cv.resize(img,(640,360),interpolation=cv.INTER_CUBIC)
print(img_scl.shape)
#比例缩小图像 img,变换比列为 0.5 0.5 变换后为 (320,180)
img_sc2=cv.resize(img_scl,None,fx=0.5,fy=0.5,interpolation=cv.INTER_CUBIC)
print(img_sc2.shape)
img_sc3=cv.resize(img,(2*w,3*h),interpolation=cv.INTER_CUBIC)
print(img_sc3.shape)
#比例缩小图像 img,变换比列为 0.2*w 0.3*h
img_sc4=cv.resize(img,(int(0.2*w),int(0.3*h)),interpolation=cv.INTER_CUBIC)
cv.namedWindow('out',cv.WINDOW_AUTOSIZE)
cv.imshow('out',img_scl)
cv.namedWindow('out2',cv.WINDOW_AUTOSIZE)
cv.imshow('out2',img_sc2)
cv.namedWindow('ou3',cv.WINDOW_AUTOSIZE)
cv.imshow('out3',img_sc3)
cv.namedWindow('ou4',cv.WINDOW_AUTOSIZE)
cv.imshow('out4',img_sc4)
效果
这 方面 都是 比较 简单
其实 还有 其他 的一些 模块 不一一 详细 写出来了