本系列文章由 @yhl_leo 出品,转载请注明出处。
文章链接: http://blog.csdn.net/yhl_leo/article/details/51510432


工程源码GitHub: yhlleo/ImageDataAugmentation

编译环境:

  • CMake
  • OpenCV
  • Visual Studio 2010

在机器学习和深度学习中,通常使用为了增加数据(Data Augmentation)可以对数据进行例如一系列的旋转(rotate)、镜像(flip)等操作,本文将讲解如何求取旋转图像的最大内接矩形问题,这里的内接矩形,并不是数学上严格的内接概念,而是获得的矩形是不含如图 1所示的旋转导致的空白区域。


图 1


图 2

如图2所示,红色矩形ABCD是绿色矩形旋转一定角度后对应的结果,旋转中心定义在图像的中心,坐标轴方向x->col, y->row,则可有以下推导:

但是测试过程中就会发现,上面的分析,对于col近似等于row的图像会有问题,问题出自哪里呢?如图 3,很容得到的解是这样的蓝色的矩形框,因此,除了上面的极值条件,还必须添加相应的边界条件,从而获得紫色的矩形框边界。


图 3

可以看出,两种情况的最大不同就是, 矩形边AB与坐标轴col相交的点是否位于绿色矩形框的内部,前面推导的结果对于位于绿色矩形框内部是成立的,对于位于外部的情形,可有如下分析:

以上的推导在顺时针旋转角度a属于(0, 90)时成立,当角度位a属于(90, 180) 时等价于180-a,而当a为90°或180°时相对简单,更多的旋转角度也是以180°为周期,因此,整个旋转最大内接矩形的求取过程就分析完毕~

求解旋转图像的最大内接矩形相关推荐

  1. 求四边形最大内接矩形_三角形内接矩形的最大面积问题

    龙源期刊网 http://www.qikan.com.cn 三角形内接矩形的最大面积问题 作者:李云虎 来源:<中学教学参考 · 理科版> 2013 年第 01 期 [问题]美佳玩具厂生产 ...

  2. 获取轮廓、获取内接矩形

    对原图像,使用Imgproc.findContours获取轮廓. 对轮廓,使用Imgproc.minAreaRect获取轮廓的内接矩形(可能会有旋转角度). 对上述内接矩形使用boundingRect ...

  3. opencv 最大内接矩形笔记

    python 最小外接矩形, 最小外接矩形的顶点坐标:cv2.boxPoints cnt = np.array([[data_0_x, data_0_y], [data_1_x, data_1_y], ...

  4. 图像处理--最大内接矩形

    文章目录 0.提取效果 1. 最大内接矩形 1.2 遍历法.中心扩散法 1.3 柱状图方法 参考 0.提取效果 1. 最大内接矩形 这里所说的最大内接矩形简单说是闭合轮廓内矩形面积最大的矩形.如果闭合 ...

  5. OPENCV 寻找图形最大内接矩形

      轮廓的最大外接矩形,Opencv有提供的现成的算法,最大内接圆也有提供的算法.但是没有现成的内接矩形的算法.本文使用C++实现了取轮廓最大内接矩形的方式,供大家参考. 实现的基本思路是: 处理图片 ...

  6. OpenCV轮廓最大内接矩形(带角度)-计算与绘制(Python / C++源码)

    实现效果 OpenCV获取轮廓/Blob最大内接矩形(带角度) 实现源码 一.C++ OpenCV实现: #include "pch.h" #include <iostrea ...

  7. python莫比乌斯内接矩形_用莫比乌斯带巧解内接矩形问题:拓扑学的用处

    问题 对于任意的闭合环路,是否总能在其上找到四个点形成一个矩形? 该问题也被称为内接矩形问题,而内接正方形问题至今没有解答方案. 首先我们不再关注单个而是成对的点,并利用矩形的性质:对于平面上任意两对 ...

  8. 用莫比乌斯带巧解内接矩形问题:拓扑学的用处

    问题 对于任意的闭合环路,是否总能在其上找到四个点形成一个矩形? 该问题也被称为内接矩形问题,而内接正方形问题至今没有解答方案. 首先我们不再关注单个而是成对的点,并利用矩形的性质:对于平面上任意两对 ...

  9. 《用莫比乌斯带巧解内接矩形问题:拓扑学的用处》学习笔记

    昨天 Rocket101 孟美岐 发歌了,刚刚看到,犹豫了一会磕不磕.最后含是氪了一发,唱的含行,可惜旋律一般好听,没有加入歌单. Bilibili链接 用莫比乌斯带巧解内接矩形问题:拓扑学的用处.- ...

  10. 轮廓的最大面积内接矩形/内接圆计算

    1.求出轮廓重心(X0,Y0). 2.找出轮廓上点到重心的距离最大的点1. 3.连接点到重心形成线段,做线段反向等距离延长线段,得到点2. 4.内接矩形:根据对角线上的(点1,点2),根据旋转矩形和平 ...

最新文章

  1. 创建一个栈存储结构,并且写入一些对栈的基本的操作
  2. matlab编写长度为100矩形序列,18春[华中师范大学]华师《Matlab基础与应用》在线作业(100分)...
  3. 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)--转
  4. Python装饰器学习笔记 1
  5. linux网路编程之多进程并发服务器
  6. C语言中的“”和“”
  7. Sub-process /usr/bin/dpkg returned an error code (1)解决办法
  8. SpringBoot-spring-boot-autoconfigure模块
  9. [导入]一个很有个性的网站??
  10. c++ opencv 摄像头断线重联
  11. 删除IBM常见软件进程释放系统资源
  12. 克隆巴赫系数 Cronbach‘s alpha 及 R, Python 实现
  13. hackthebox - jail (考点:linux缓冲区 nfs配置提权 rvim提权 rar解密 rsa解密)
  14. HTTP协议简介和系统命令curl,AIP调用 (ELK中运用)
  15. 关于计算机学院的毕业论文致谢,计算机学院毕业生论文致谢范文
  16. 第五章 人工神经网络
  17. 缅怀清明-记爷爷这一生
  18. 3d打印机品牌排行榜揭晓,stratasys公司名列前茅
  19. 【linux内核-源码编译之centos7】
  20. 区块链学习名词详解-Part1

热门文章

  1. linux配置路由器命令手册,Linux配置路由器
  2. python提取图片中的数字_用Python-OpenCV从车牌图像中提取数字和字母
  3. java 调用三角函数_Java中的三角函数方法
  4. 动态域名解析,快解析有哪些优势?
  5. 计算机视觉——Harris角点检测(课堂实验)
  6. con 元器件符号_Protues 元器件符号
  7. kubernetes device or resource busy的问题
  8. jquery 内容分页_为内容创建现代jQuery分页
  9. 如何设置qq说说展示时间_QQ空间说说新增定时发表功能
  10. 【Derivation】 条件数学期望公式