对于电脑来说,一切都是数据,图片也不例外。
图片在计算机的眼中,就是一个数字矩阵。
在之前的python opencv-有点意思同学讨论问题记录文章中,有讲过如何对图片进行裁剪和数据修改,主要是对矩阵进行操作。
而图像处理也经常会对图像进行变换操作,常见的有拉伸,缩放,扭曲,旋转,镜像等等。
要实现对应的变换操作,很多图像库都有对应的方法,那如果不用现成的方法,自己来实现一个可以吗?
肯定是可以的。
今天我们先看看旋转,镜像和翻转,下面是对应的效果。
原图
镜像
顺时针旋转90度
上下翻转
下面有一个矩3*3的矩阵(你也可以看做二维列表)。
代码语言:javascript复制[[1 2 3]
[4 5 6]
[7 8 9]]
问题1:顺时针旋转90度,得到以下矩阵。
代码语言:javascript复制[[7 4 1]
[8 5 2]
[9 6 3]]
问题2:对矩阵进行镜像操作
代码语言:javascript复制[[3 2 1]
[6 5 4]
[9 8 7]]
问题3:上下翻转操作。
代码语言:javascript复制[[7 8 9]
[4 5 6]
[1 2 3]]
以上如果都可以轻易完成,那么可以挑战一下,如果图片要旋转30度该如何操作。