OpenCV实现图像的透射变换

透射变换原理

OpenCV实现图像的透射变换_第1张图片
OpenCV实现图像的透射变换_第2张图片

代码实现

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']

img = cv.imread("lena.png")
rows, cols, _ = img.shape

pts1 = np.float32([[50, 50], [200, 50], [50, 200], [200, 200]])
pts2 = np.float32([[10, 100], [200, 50], [100, 250], [200, 200]])

T = cv.getPerspectiveTransform(pts1, pts2)
dst = cv.warpPerspective(img, T, (cols, rows))

fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100)
axes[0].imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))
axes[0].set_title("原图")
axes[1].imshow(cv.cvtColor(dst, cv.COLOR_BGR2RGB))
axes[1].set_title("透视变换后的结果")
plt.show()

结果展示

OpenCV实现图像的透射变换_第3张图片

你可能感兴趣的:(OpenCV从入门到精通,opencv,人工智能,计算机视觉,python)