【OpenCV 例程200篇】32. 图像的扭变(错切)
『youcans 的 OpenCV 例程200篇 - 总目录』
【youcans 的 OpenCV 例程200篇】32. 图像的扭变(错切)
图像的错切变换也称斜切,是指平面景物在投影平面上的非垂直投影,使图像中的图形在水平方向或垂直方向产生扭变。
以水平扭变为例,像素点 (x,y) 在水平方向发生扭变变成斜边,而在垂直方向的边不变,可以由以下公式描述:
[
x
~
y
~
1
]
=
M
A
S
[
x
y
1
]
,
M
A
S
=
[
1
t
a
n
θ
0
0
1
0
0
0
1
]
\begin{bmatrix} \tilde{x}\\ \tilde{y}\\ 1 \end{bmatrix} = M_{AS} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix} ,\hspace{1em} M_{AS} = \begin{bmatrix} 1 &tan \theta &0\\ 0 &1 &0\\ 0 &0 &1 \end{bmatrix}
⎣⎡x~y~1⎦⎤=MAS⎣⎡xy1⎦⎤,MAS=⎣⎡100tanθ10001⎦⎤
由扭变角度 θ上式构造错切变换矩阵 MAS,由函数 cv2.warpAffine 可以计算变换后的扭变图像。
基本例程:1.41 图像的错切
# 1.41 图像的错切
img = cv2.imread("../images/imgB2.jpg") # 读取彩色图像(BGR)
height, width = img.shape[:2] # 图片的高度和宽度
MAS = np.float32([[1, 0.2, 0], [0, 1, 0]]) # 构造错切变换矩阵
imgShear = cv2.warpAffine(img, MAS, (width, height))
plt.figure(figsize=(9,6))
plt.subplot(121), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)), plt.title("imgOrigin")
plt.subplot(122), plt.imshow(cv2.cvtColor(imgShear, cv2.COLOR_BGR2RGB)), plt.title("imgShear")
plt.show()
(本节完)
版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125112487)
Copyright 2022 youcans, XUPT
Crated:2021-11-18
【第3章:图像的几何变换】
更多推荐
所有评论(0)