opencv图像变换透视图片示例

本文介绍了如何使用OpenCV中的cv2.warpPerspective和cv2.getPerspectiveTransform函数进行图像的透视变换,通过给定源图像和目标图像中四个关键点,计算并应用转换矩阵实现图像变形。
摘要由CSDN通过智能技术生成

透视变换会将图像转换为任意四边形,特点:原始图像中的所有直线在转换后的图像中仍是直线。

opencv的cv2.warpPerspective()函数用于执行透视变换

格式:a = cv2.warpPerspective(src,M,dsize[,flags[,borderMode[,borderValue]]])

其中M是大小为3X3的转换矩阵

opencv的cv2.getPerspectiveTransform()函数用于计算透视变换使用的转换矩阵

格式:a = cv2.getPerspectiveTransform(src,dst)

其中src为原图像中4个点的坐标

dst为原图像中4个点在转换后的目标图像中的对应坐标

示例

import cv2
import numpy as np
import cv2 as cv
#(117,176),(339,176),(117,512),(339,511)
im2 = cv.imread('.//lena.jpg')
im1 = cv.imread('.//tupian.jpg')
p1 = np.float32([[117,176],[339,176],[339,511],[117,512]])
p2 = np.float32(
    [[0, 0], [im2.shape[1], 0], [im2.shape[1], im2.shape[0]], [0, im2.shape[0]]])
m = cv2.getPerspectiveTransform(p2, p1)
m1 = cv2.warpPerspective(im2, m, (im1.shape[1], im1.shape[0]))

Result = im1+m1
# 显示结果
cv2.imshow('Result', Result)
cv2.waitKey(0)
cv2.destroyAllWindows()

步骤:

1.导包,导入图片

2.确认俩张图片点位(tupian.jpg是广告牌,需要手动设置广告牌空白的四个点位置,想要确定四个点位置可以打开画图工具鼠标放置其中一个点,再看左下角象素)

3.透视

4.俩个图片相加(这里的图片可以直接相加,如果显示相加图片颜色不对,可以看看RGB通道颜色)

5.显示结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值