透视变换

简介: 【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)

目录
相关文章
|
6月前
|
计算机视觉
直方图均衡化
直方图均衡化是一种图像处理技术,通过改变图像灰度级分布,增强图像对比度。手动实现包括计算灰度直方图、像素总数、灰度分布频率、累积分布频率,然后归一化映射到新灰度级,最终得到增强对比度的图像。该方法适用于改善灰度集中或明暗对比不明显的图像,但全局处理可能导致背景干扰增强,丢失细节,且某些图像可能过度增强。局部直方图均衡化可作为改进方案。
108 1
|
5月前
|
Python
轮廓的矩
【6月更文挑战第25天】轮廓的矩。
37 1
|
5月前
|
索引 Python
轮廓的凸包
【6月更文挑战第11天】轮廓的凸包。
39 3
|
6月前
|
计算机视觉
普通直方图均衡化
普通直方图均衡化。
27 2
|
6月前
|
计算机视觉
仿射变换
【5月更文挑战第12天】仿射变换。
93 11
202309-1 坐标变换(其一)
202309-1 坐标变换(其一)
202309-2 坐标变换(其二)
202309-2 坐标变换(其二)
|
6月前
|
机器学习/深度学习 计算机视觉
均值滤波
【5月更文挑战第15天】均值滤波。
40 1
|
6月前
|
计算机视觉
图像直方图
以下是内容摘要: 本文介绍了直方图在图像处理中的应用,包括图像增强和图像分割。直方图均衡化用于改善图像的亮度分布,而根据直方图可获取分割阈值以实现图像分割。此外,直方图对比有助于图像分类。直方图是表示图像亮度分布的图表,通过分析直方图的峰值可判断图像属于低调、中间调还是高调。直方图均衡化则能将图像转换为灰度分布更均匀的新图像。
60 0
C++-灰度图上色GrayToColor
C++-灰度图上色GrayToColor