cv2 的图片移位操作原理和实现。
调用 opencv 的 api 实现图片位移操作:
1 | import cv2 |
原理:
移位矩阵 mat_shift 是一个2 * 3的矩阵。
把移位矩阵拆成两个矩阵 A 和 B。
$$
matshift =
\begin{bmatrix}
1&0&100 \\
0&1&200
\end{bmatrix}
,
A =
\begin{bmatrix}
1&0 \\
0&1
\end{bmatrix}
,
B =
\begin{bmatrix}
100 \\
200
\end{bmatrix}
$$
输入的图像矩阵设为 C。
$$
A \times C + B =
\begin{bmatrix}
1&0\\
0&1
\end{bmatrix}
\times
\begin{bmatrix}
x\\
y
\end{bmatrix}
+
\begin{bmatrix}
100\\
200
\end{bmatrix}
=
\begin{bmatrix}
1 \times x + 0 \times y\\
0 \times x + 1 \times y
\end{bmatrix}
+
\begin{bmatrix}
100\\
200
\end{bmatrix}
=
\begin{bmatrix}
x + 100\\
y+ 200
\end{bmatrix}
$$
所以最终运算后得到的效果就是 x 向右移动 100 像素,y 向下移动 200 像素。
Python 实现图片移动:
1 | import cv2 |