python Opencv 学习 (四) :图片的空间的移动

图片的 移动 包括了
平移 旋转 放大 等

图片 提供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)

python Opencv 学习 (四) :图片的空间的移动

旋转

代码

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)

python Opencv 学习 (四) :图片的空间的移动

缩小放大

代码

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)

效果
python Opencv 学习 (四) :图片的空间的移动

这 方面 都是 比较 简单
其实 还有 其他 的一些 模块 不一一 详细 写出来了