python opencv图片旋转180度_Python opencv图像镜像翻转
最近在训练CNN网络,需要对数据进行扩充,于是想做一下图像的镜像翻转,主要参考了博客:
不过我发现博主使用的是opencv老版本了,现在大家都是cv2了,因此我对博主的代码进行了必要的修改。
首先,说明一下,图像的镜像变化不改变图像的形状。图像的镜像变换分为:水平镜像,垂直镜像,对角镜像
下面,简单说一下三种变换的简单公式:假设原图像的大小为H*W,i,j为原始图像第(i,j)元素,I,J为变换后(I,J)元素,则:
水平镜像可按公式:
I = i
J = W - 1 - j
垂直镜像可按公式:
I = H - 1 - i
J = j
对角镜像可按公式:
I = H - 1 - i
J = W -1 - i
就是这么简答,贴下我的代码吧!
'''
函数:DataAugment()
函数功能:扩大数据量
输入参数:dir_path----图片库路径
'''
def DataAugment(dir_path):
if not os.path.exists(dir_path):
print u'路径不存在'
else:
dirs = os.listdir(dir_path)
for subdir in dirs:
sub_dir = dir_path + '/' + subdir
files = os.listdir(sub_dir)
fileNum = len(files)
if fileNum > 25:
continue
num=0
for fr in files:
suff = fr.split('.')[1]
filename = sub_dir + '/' + fr
img = cv2.imread(filename)
size = img.shape#获得图像的形状
iLR = copy.deepcopy(img)#获得一个和原始图像相同的图像,注意这里要使用深度复制
h = size[0]
w = size[1]
for i in range(h):#元素循环
for j in range(w):
iLR[i,w-1-j]=img[i,j]#注意这里的公式没,是不是恍然大悟了(修改这里)
new_name ="%s/%09d.%s"%(sub_dir,num,suff)
num+=1
cv2.imwrite(new_name,iLR)
#cv2.imshow('image',iLR)
#cv2.waitKey(0)
说明:我这里只实现了水平镜像翻转,要实现其他翻转,可以使用其他公式。
python opencv图片旋转180度_Python opencv图像镜像翻转相关推荐
- python 数据逆时针旋转270度_Python自动耍俄罗斯方块
小笨聪前面的文章总是用 Python 来进行爬虫,今天就换一下口味,体验一下 Python 自动耍俄罗斯方块. 小游戏 | Python自动玩俄罗斯方块mp.weixin.qq.com 俄罗斯方块( ...
- 在html中让图片旋转180度,gif图片旋转教程:怎么把gif旋转90度/180度 附gif图片旋转软件...
视频可以用视频编辑软件将视频旋转90度>>gif旋转90度或180度呢,往下看,你可在本文中找到答案. 先睹为快,看看旋转的效果对比图: 原图 顺时旋 ...
- CSS3只让背景图片旋转180度
CSS3旋转背景图片 一.心路历程 二.代码实现 一.心路历程 最近写驾驶舱的时候琢磨了一个问题,就是单纯的使背景图片旋转的一定的角度. 只通过CSS3的transfrom让整个容器都翻转了一定的角度 ...
- python给图片加半透明水印_Python+OpenCV为图片添加中文水印与图片水印
OpenCV中在图片上输出中文一般有两种解决办法: 一种需要借助FreeType库实现.FreeType库是一个完全免费(开源)的.高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件. ...
- opencv 图片旋转90度
这个小功能居然会折腾我很久,都怪opencv的官方函数warpAffine旋转后总会平移,结果留下难看的黑边.几经google,终于发现opencv的c函数中有神奇的transpose和flip可以互 ...
- python 读取图片成为一维数组_python+opencv 图像的数组和矩阵操作
在调用opencv的imread函数读取图像时,我们得到的其实是一个类型为numpy.ndarray的n维数组.这个数组的维度是[height,width,3],它是由每个像素的RGB通道的灰度值组成 ...
- python下载图片被覆盖了_Python OpenCV – 覆盖透明的图像
我想要实现的是将具有透明度的图像放在另一个图像的顶部.像这样的东西: 我一直无法找到任何解决方案,所以我决定逐像素地计算得到的颜色.那个对我有用,但速度很慢. 我是OpenCV的新手,也是Python ...
- python提取图片感兴趣区域_Python+OpenCV感兴趣区域ROI提取方法
方法一:使用轮廓 步骤1 """src为原图""" ROI = np.zeros(src.shape, np.uint8) #感兴趣区域RO ...
- css 背景图旋转 只让背景图片旋转180度的实现示例
最近进行二次开发的时候有个图片用背景图要旋转一定角度. 下图中如果只给.question添加背景通过CSS3的transfrom rotate肯定是会影响文字的展示. 所以把背景图放到伪类中进行旋转就 ...
最新文章
- 概率论与数理统计(三)
- 循序渐进——NAnt构建实例
- spring boot整合redis实现统计访问量
- linux解压rar文件权限,linux下使用unrar命令解压*.rar格式文件
- linux nfs mysql_MySQL实现高可用+共享存储NFS
- ios UIlabel
- 安装appcan后打开eclipse出错
- j2me解决模拟器乱码
- 六自由度机械臂仿真设计|包括UR5|Puma|victor5|运动学正逆解介绍|MATLAB机器人工具箱|Adams仿真
- python处理cad_pyautocad python 操作CAD文件
- 前端实现内网在线excel编辑和word在线编辑相关建议
- RT-Thread— 知识点总结(RTT认证+面试题汇总)
- 牛客bfs:工厂流水线
- 如何修改Android应用程序的图标和名字?
- 我的四核Cortex-A53学习之路
- java学习笔记day09 final、多态、抽象类、接口
- matlab-车辆操纵稳定性2自由度、 3自由度
- lte接口流程图_LTE信令流程图(端到端平台)解析.doc
- 并发编程02-什么是线程安全以及Java虚拟机中哪些数据是线程共享的,那些是线程私有的
- java如何忽略过程值_Java中容易被你忽略的细节(四)