opencv-affine仿射(十六)

           图像的仿射变换
# 定义:仿射变换是图像旋转,缩放,平移的总称
    仿射API:warpAffine(src,M,dsize,flags,mode,value)
    M:变换矩阵
    flags: 与resize中的插值算法一直
    mode:边界外推法标志(可省略)
    value:填充边界的值(可省略)
# 平移矩阵
    M = np.float32([[1, 0, 100], [0, 1, 200]])
# 变化矩阵一M
    getRotationMatrix2D(center,angle,scale)
    center:中心点
    angle:角度,逆时针旋转
    scale:缩放比例
# 变换矩阵二,根据三个点制作M,
    getAffineTransform(src[],dst[])

示例:

import numpy as np
import cv2 as cv

dog = cv.imread('./img/dog.jpg')

h,w,ch = dog.shape

# 单元矩阵偏移,其中100,200是偏移量
# M = np.float32([[1, 0, 100], [0, 1, 200]])

# 变换矩阵M,getRotationMatrix2D(中心点,逆时针角度,缩放比例)
# M = cv.getRotationMatrix2D((w/2,h/2),15,0.8)

# 变换矩阵二,根据几个点制作M,getAffineTransform(src[],dst[]
src = np.float32([[400,300],[650,300],[400,600]])
dst = np.float32([[200,400],[450,500],[150,850]])
M = cv.getAffineTransform(src,dst)

# 仿射API,M为仿射的方式
new = cv.warpAffine(dog,M,(w,h))

print(new.shape)

cv.imshow('new',new)
cv.waitKey(0)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值