python openCV 图像几何变换--镜像翻转flip()

目录

    • 目录
    • 基本认知
    • 代码实现
    • 知识点

基本认知

图像的几何变换是指在不改变图像像素值的前提下对图像像素进行空间几何变换。
常见的几何变换有:
镜像,平移,旋转,缩放,仿射等变换。
本节介绍图像镜像翻转变换,作为知识储备。

代码实现

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
import sys
import copy

#python 图像翻转,自定义翻转

img = cv.imread('ABC.png')

if img.all()==None:
    print('No Such image!')
    sys.exit(0)
size = img.shape
iCopy = copy.deepcopy(img)
iCopy1 = copy.deepcopy(img)
iCopy2 = copy.deepcopy(img)
h = size[0]
w = size[1]

for i in range(h):
    for j in range(w):
        iCopy[i,w-1-j] = img[i,j]#水平镜像
        iCopy1[h-1-i,j] = img[i,j]#垂直镜像
        iCopy2[h-1-i,w-1-j] = img[i,j]#对角镜像
plt.subplot(221),plt.imshow(img)
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(222),plt.imshow(iCopy)
plt.title('Remap shuiping Image'), plt.xticks([]), plt.yticks([])
plt.subplot(223),plt.imshow(iCopy1)
plt.title('Remap chuizhi Image'), plt.xticks([]), plt.yticks([])
plt.subplot(224),plt.imshow(iCopy2)
plt.title('Remap duijiao Image'), plt.xticks([]), plt.yticks([])

plt.show()
#python 图像翻转,使用openCV flip()方法翻转
xImg = cv.flip(img,1,dst=None) #水平镜像
xImg1 = cv.flip(img,0,dst=None) #垂直镜像
xImg2 = cv.flip(img,-1,dst=None) #对角镜像
plt.subplot(221),plt.imshow(img)
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(222),plt.imshow(xImg)
plt.title('Remap shuiping Image'), plt.xticks([]), plt.yticks([])
plt.subplot(223),plt.imshow(xImg1)
plt.title('Remap chuizhi Image'), plt.xticks([]), plt.yticks([])
plt.subplot(224),plt.imshow(xImg2)
plt.title('Remap duijiao Image'), plt.xticks([]), plt.yticks([])

plt.show()

知识点

两个方式:
1.通过操作图像像素来镜像翻转。
2.调用openCV flip()方法进行镜像翻转,结果都是一样滴。

你可能感兴趣的:(数字图像处理,机器学习)