Image Flip代码注释:
import cv2 as cv
import numpy as np
src = cv.imread("dataset/train/bees/1.png")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)
# 图像翻转的本质是像素映射,OpenCV支持三种图像翻转方式.
# void flip(InputArray src, OutputArray dst, int flipCode);
# src:输入原图像矩阵
# dst:操作后的输出图像矩阵
# flipCode:翻转类型
# X Flip 倒影
dst1 = cv.flip(src, 0);
cv.imshow("x-flip", dst1);
# X轴翻转,flipcode=0;
# 垂直翻转,即沿X轴翻转。
# Y Flip 镜像
dst2 = cv.flip(src, 1);
cv.imshow("y-flip", dst2);
# Y轴翻转,fipcode=1;
# flipCode>0水平翻转,即沿Y轴翻转。
# XY Flip 对角
dst3 = cv.flip(src, -1);
cv.imshow("xy-flip", dst3);
# XY轴翻转,flipcode=-1;
# flipCode<0水平垂直翻转。
# 先沿X轴翻转,再沿Y轴翻转,等价于旋转180°
# custom y-flip 看不懂啥意思???
h, w, ch = src.shape
dst = np.zeros(src.shape, src.dtype)
for row in range(h):
for col in range(w):
b, g, r = src[row, col]
dst[row, w - col - 1] = [b, g, r]
cv.imshow("custom-y-flip", dst)
cv.waitKey(0)
cv.destroyAllWindows()
# 类似的原理还可以用于图片矫正和趣味制图。
结果如图: