其他分享
首页 > 其他分享> > warpPerspective

warpPerspective

作者:互联网

前言:
使用过的同学知道app——扫描xx王有个功能是将图片转化pdf,通过将手机相机拍到的图片转换为pdf,这款app能将手机拍到的照片多余的空白部分减去。本文讲述这个功能实现的部分原理。即实现本文的两张图片变换。
参考链接:https://zhuanlan.zhihu.com/p/37023649

  1. 转化的图片如下,将上面的图片转化为下图
    在这里插入图片描述
    在这里插入图片描述

  2. 本次使用的环境

system: win11
software: opencv-python == 3.4.2.16
opencv-contrib-python == 3.4.2.16
environment:python3.6

3.需要的准备工作,找到原始图片我们需要变换的四个坐标
即下图四个坐标
在这里插入图片描述4.
代码如下

import numpy as np
from cv2 import cv2

if __name__ == '__main__':
    # 读取原始图片
    img1_path = r"ori.png"
    img1 = cv2.imread(img1_path)
    # 获得图片的高度与宽度
    height, weight = img1.shape[:2]

    # 定义我们要透视变换的点,即上面图的四个点 分别是原图的 左上 右上 左下 右下, 注意需要将四个点的坐标转换成float32
    points_ori = np.array([[13, 14], [312, 8], [24, 393], [304, 410]]).astype(np.float32)
    # 定义我们将图片展平的点,本次展平为一张图片
    points_transform = np.array([[0, 0], [300, 0], [0, 380], [300, 380]]).astype(np.float32)

    # 计算得到转化矩阵  输入的参数分别是原图像的四边形坐标 变换后图片的四边形坐标
    M = cv2.getPerspectiveTransform(points_ori, points_transform)

    #得到透视变换的图片
    img_ = cv2.warpPerspective(img1,M,(300,380))
	#将图片保存即可得到2图

标签:__,warpPerspective,cv2,points,np,img1,图片
来源: https://blog.csdn.net/kui9702/article/details/122157211