透视变换

简介: 【5月更文挑战第15天】透视变换。

透视变换会将图像转换为任意的四边形,其主要特点是:原始图像中的所有直线在转换后的图像中仍然是直线。OpenCV的cv2.warpPerspective()函数用于执行透视变换操作,其基本格式如下。
dst=cv2.warpPerspective(src,M,dsize[,flags[,borderMode[,borderValue]]])
其中,M是大小为3×3的转换矩阵,其他参数含义与cv2.warpAffine()函数中的一致。
OpenCV的cv2.getPerspectiveTransform()函数用于计算透视变换使用的转换矩阵,其基本格式如下。
M=cv2.getPerspectiveTransform(src,dst)
参数说明如下。
src为原图像中4个点的坐标。
dst为原图像中4个点在转换后的目标图像中的对应坐标。
示例代码如下。

图像的透视变换

import cv2
import numpy as np
img=cv2.imread('bee.jpg') #读取图像
cv2.imshow('img',img) #显示图像
height=img.shape[0] #获得图像高度
width=img.shape[1] #获得图像宽度
dsize=(width,height)
src=np.float32([[0,0],[width-10,0],
[0,height-10],[width-1,height-1]]) #取原图像中的4个点
dst=np.float32([[50,50],[width-50,80],[50,height-100],
[width-100,height-10]]) #设置4个点在目标图像中的坐标
m = cv2.getPerspectiveTransform(src, dst) #创建转换矩阵
img2=cv2.warpPerspective(img,m,dsize) #执行转换
cv2.imshow('imgFourPoint',img2) #显示图像
cv2.waitKey(0)

目录
相关文章
|
1月前
|
计算机视觉
直方图均衡化
直方图均衡化是一种图像处理技术,通过改变图像灰度级分布,增强图像对比度。手动实现包括计算灰度直方图、像素总数、灰度分布频率、累积分布频率,然后归一化映射到新灰度级,最终得到增强对比度的图像。该方法适用于改善灰度集中或明暗对比不明显的图像,但全局处理可能导致背景干扰增强,丢失细节,且某些图像可能过度增强。局部直方图均衡化可作为改进方案。
51 1
|
3天前
|
Python
轮廓的矩
【6月更文挑战第25天】轮廓的矩。
13 1
|
29天前
|
计算机视觉
普通直方图均衡化
普通直方图均衡化。
17 2
|
1月前
|
计算机视觉
仿射变换
【5月更文挑战第12天】仿射变换。
62 11
202309-1 坐标变换(其一)
202309-1 坐标变换(其一)
202309-2 坐标变换(其二)
202309-2 坐标变换(其二)
|
1月前
|
机器学习/深度学习 计算机视觉
均值滤波
【5月更文挑战第15天】均值滤波。
16 1
|
1月前
|
算法
[Halcon&拟合] 直线、矩形和圆的边缘提取
[Halcon&拟合] 直线、矩形和圆的边缘提取
242 0
|
机器学习/深度学习 C++
C++实现实现逆时针旋转矩阵
C++实现实现逆时针旋转矩阵
C++实现实现逆时针旋转矩阵
|
8月前
角点检测汇总
角点检测汇总
27 0