opencv中getPerspectiveTransform和warpPerspective的使用

1,getPerspectiveTransform 得到透视变换矩阵M

src_points = [left, bottom, left, top, right, top, right, bottom] #分别对应bbox的四个点坐标

src_points = np.array(src_points, dtype = "float32").reshape((-1,2)) #变为4*2的array

想把这个bbox变换为dst_height=224,dst_height=224 的图像,则dst_points为:

dst_corners = [0.0, dst_height, 0.0, 0.0, dst_width, 0.0, dst_width, dst_height] #对应图像的4个点坐标,四个点的坐标顺序和上面的bbox的顺序一致

dst_points = np.array(dst_corners, dtype = "float32").reshape((-1,2)) #变为4*2的array

M = cv2.getPerspectiveTransform(src_points, dst_points) #得到由src_points变换到dst_points的透视矩阵M

2,warpPerspective根据透视矩阵M变换图像

perspective = cv2.warpPerspective(image, M, (dst_width, dst_height), cv2.INTER_LINEAR)

image图像为bbox所在的原始图像,M为透视矩阵,(dst_width, dst_height)为变换后的图像大小

perspective为最终得到的(dst_width, dst_height)图像

小记录一下使用心得

参考人脸对齐的详细计算过程 - 知乎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值