如何镜像翻转图片 OpenCV学习之路-29. 图像的翻转

翻转也称镜像,是指将图像沿轴线进行轴对称变换。水平镜像是将图像沿垂直中轴线进行左右翻转,垂直镜像是将图像沿水平中轴线进行上下翻转,水平垂直镜像是水平镜像和垂直镜像的叠加。
以水平镜像为例,图像宽度为 fw,像素点 (x,y) 以垂直中轴线为中心进行左右对换,可以由以下公式描述:

由上式构造镜像变换矩阵 MAF,由函数 cv2.warpAffine 可以计算变换后的镜像图像。
简便地,OpenCV 提供了 cv2.flip 函数,可以将图像沿水平方向、垂直方向、或水平/垂直方向同时进行翻转。
函数说明:
cv2.flip(src, flipCode[, dst]) -> dst
参数说明:
scr:变换操作的输入图像 flipCode:控制参数,整型(int),flipCode>0 水平翻转,flipCode=0 垂直翻转,flipCode<0 水平和垂直翻转 dst:变换操作的输出图像,可选项
基本例程:1.38 图像的翻转(镜像)
#1.38图像的翻转(镜像)img=cv2.imread("../images/Fractal03.png")#读取彩色图像(BGR)imgFlip1=cv2.flip(img,0)#垂直翻转imgFlip2=cv2.flip(img,1)#水平翻转imgFlip3=cv2.flip(img,-1)#水平和垂直翻转plt.figure(figsize=(9,6)) plt.subplot(221),plt.axis('off'),plt.title("Original") plt.imshow(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))#原始图像plt.subplot(222),plt.axis('off'),plt.title("FlippedHorizontally") plt.imshow(cv2.cvtColor(imgFlip2,cv2.COLOR_BGR2RGB))#水平翻转plt.subplot(223),plt.axis('off'),plt.title("FlippedVertically") plt.imshow(cv2.cvtColor(imgFlip1,cv2.COLOR_BGR2RGB))#垂直翻转plt.subplot(224),plt.axis('off'),plt.title("FlippedHorizontally&Vertically") plt.imshow(cv2.cvtColor(imgFlip3,cv2.COLOR_BGR2RGB))#水平垂直翻转plt.show()
