快捷搜索:  汽车  科技

图像镜像翻转的opencv实现原理(OpenCV学习之路-29.图像的翻转)

图像镜像翻转的opencv实现原理(OpenCV学习之路-29.图像的翻转)cv2.flip(src flipCode[ dst]) -> dst# 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

图像镜像翻转的opencv实现原理(OpenCV学习之路-29.图像的翻转)(1)

翻转也称镜像,是指将图像沿轴线进行轴对称变换。水平镜像是将图像沿垂直中轴线进行左右翻转,垂直镜像是将图像沿水平中轴线进行上下翻转,水平垂直镜像是水平镜像和垂直镜像的叠加。

以水平镜像为例,图像宽度为 fw,像素点 (x y) 以垂直中轴线为中心进行左右对换,可以由以下公式描述:

图像镜像翻转的opencv实现原理(OpenCV学习之路-29.图像的翻转)(2)

由上式构造镜像变换矩阵 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("Flipped Horizontally") plt.imshow(cv2.cvtColor(imgFlip2 cv2.COLOR_BGR2RGB)) # 水平翻转 plt.subplot(223) plt.axis('off') plt.title("Flipped Vertically") plt.imshow(cv2.cvtColor(imgFlip1 cv2.COLOR_BGR2RGB)) # 垂直翻转 plt.subplot(224) plt.axis('off') plt.title("Flipped Horizontally & Vertically") plt.imshow(cv2.cvtColor(imgFlip3 cv2.COLOR_BGR2RGB)) # 水平垂直翻转 plt.show()

图像镜像翻转的opencv实现原理(OpenCV学习之路-29.图像的翻转)(3)

(本节完)

猜您喜欢: