多语言展示
当前在线:193今日阅读:91今日分享:37

opencv3+python3完成图片镜像实现

镜像操作是很频繁的图像处理操作,python实现起来简单易于操作。
工具/原料
1

pycharm+win7环境

2

opencv3+ python3

方法/步骤
1

镜像操作有三种:假设原图在第一象限1) 绕y轴 实现于第二象限2) 绕y再x 实现于第三象限3)绕X实现于第四象限

2

opencv函数flip实现上述功能:flip(src, flipCode)src – 源图像flipCode – 镜像模式:flipCode==0垂直镜像(沿X轴);flipCode>0水平镜像(沿Y轴);flipCode<0水平垂直镜像(先沿X轴,再沿Y轴,等价于旋转180°)

3

水平镜像代码如下:#镜像import cv2   as  cvimport numpy as npfrom matplotlib import pyplot as pltfrom matplotlib.font_manager import FontPropertiesplt.rcParams['font.family'] = ['sans-serif']plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False #用来正常显示负号font = FontProperties(fname='/System/Library/Fonts/STHeiti Light.ttc', size=16)img = cv.imread('c:\\meiping1.png',1)rows,cols, channel = img.shape# 水平镜像plt.subplot(1,2,1),plt.imshow(img)plt.subplot(1,2,2),plt.imshow(cv.flip(img, 2))# cv.imshow('dest', dest)plt.title('水平镜像')plt.xticks([]),plt.yticks([])plt.show()

4

垂直镜像代码如下:plt.subplot(1,2,1),plt.imshow(img)plt.subplot(1,2,2),plt.imshow(cv.flip(img, 0))# cv.imshow('dest', dest)plt.title('垂直镜像')plt.xticks([]),plt.yticks([])plt.show()

5

对称四象限代码:#对称四图!plt.subplot(2,2,1),plt.imshow(img)plt.subplot(2,2,2),plt.imshow(cv.flip(img, 1))plt.subplot(2,2,3),plt.imshow(cv.flip(img, 0))plt.subplot(2,2,4),plt.imshow(cv.flip(img, -3))# plt.xticks([]),plt.yticks([])plt.show()

6

完整代码:#镜像import cv2   as  cvimport numpy as npfrom matplotlib import pyplot as pltfrom matplotlib.font_manager import FontPropertiesplt.rcParams['font.family'] = ['sans-serif']plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False #用来正常显示负号font = FontProperties(fname='/System/Library/Fonts/STHeiti Light.ttc', size=16)img = cv.imread('c:\\meiping1.png',1)rows,cols, channel = img.shape# 水平镜像plt.subplot(1,2,1),plt.imshow(img)plt.subplot(1,2,2),plt.imshow(cv.flip(img, 2))# cv.imshow('dest', dest)plt.title('水平镜像')plt.xticks([]),plt.yticks([])plt.show()plt.subplot(1,2,1),plt.imshow(img)plt.subplot(1,2,2),plt.imshow(cv.flip(img, 0))# cv.imshow('dest', dest)plt.title('垂直镜像')plt.xticks([]),plt.yticks([])plt.show()#对称四图!plt.subplot(2,2,1),plt.imshow(img)plt.subplot(2,2,2),plt.imshow(cv.flip(img, 1))plt.subplot(2,2,3),plt.imshow(cv.flip(img, 0))plt.subplot(2,2,4),plt.imshow(cv.flip(img, -3))# plt.xticks([]),plt.yticks([])plt.show()

注意事项
1

注意:cv.flip(img, 0),cv.flip(img, 1), cv.flip(img, -1)的区别

2

对称四象限图比较说明镜像结果,本文实现在 pycharm+win7+opencv3+ python3

推荐信息