penython实现旋转矩形的裁剪

矩形操作是我们在OpenCV里最常用的操作,其中最为常见的就是包围框(Bounding Box)和旋转矩形(Rotated Box)。 其中包围框是最为常见的,对应OpenCV中的boundingRect(),使用正矩形框处物体,一般多用在目标检测中。使用包围框框柱目标物体,这种操作比较简单,但是通常框中也会有一些其他的区域。其次就是使用旋转矩形,也叫最小外接矩形,对应OpenCV中的minAreaRect(),用来使用旋转矩形最大限度的框出目标物体,减小背景干扰,在OCR任务中较为常用。

minAreaRect()返回了所需区域的最小斜矩形的参数,与包围框直接返回四个顶点的坐标不同,最小外接矩形返回的是矩形的((x, y), (w, h), angle),对应了矩形的中心,宽度,高度和旋转角度。

旋转角度angle是水平轴(x轴)逆时针旋转,与碰到的矩形的第一条边的夹角。并且这个边的边长是width,另一条边边长是height。也就是说,在这里width与height不是按照长短来定义的。

在OpenCV中,坐标系原点在左上角,相对于x轴,逆时针旋转角度为负,顺时针旋转角度为正,所以函数minAreaRect()返回的角度范围时[-90~0)。想象一个平放的长矩形,调用minAreaRect() 返回的角度为-90度。如果我们旋转图像,直到矩形树立起来,这是调用minAreaRect()得到的角度依然是-90度。

第一种裁剪旋转矩形的方法是通过仿射变换旋转图像的方式。

仿射变换(Affine Transformation) 是一种二维坐标到二维坐标之间的线性变换,保持二维图形的“平直性”(straightness,即变换后直线还是直线不会打弯,圆弧还是圆弧)和“平行性”(parallelness,其实是指保二维图形间的相对位置关系不变,平行线还是平行线,相交直线的交角不变。)。

计算过程:

如果不做边长和角度的判断,则只会沿着x轴的顺时针方向做相同大小角度的旋转,不能保证旋转后的视角是正确的视角:

根据任务目标的类型,做边长和角度的判断并进行相应的调整,可以保证旋转后的视角是正确的视角:

第二种裁剪旋转矩形的方法是通过透视变换直接将旋转矩形的四个顶点映射到正矩形的四个顶点。

透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。

计算过程:

以上两种方法都可以用来抠取旋转矩形的内容。仿射变换方法需要预先对整张图进行旋转,通过观察旋转后的图像可以发现,有一部分图像被旋转出了图像边界,如果你要抠取的目标正好在图像边缘附近,那么很容易出界导致图像抠取的缺失。同时我们需要对宽、高和角度做出动态的调整;透视变换的方法直接对抠取区域进行了映射,这种方法可以省略旋转的步骤,并且不会出现抠取内容的缺失。同时我们只需要对4个顶点之间的映射关系做好定义即可,不需要考虑角度的问题。相对的,透视变换相对于仿射变换计算量更大一些,不过这在c++的底层实现上带来的时延差距小于ms。

THE END
0.PPT怎么利用矩形给图片做分开隔离效果?powerpoint办公软件ppt中导入的图片想要给图片中的人物添加隔离效果,该怎么制作呢?我们可以使用矩形制作隔离效果,下面我们就来看看详细的教程,需要的朋友可以参考下 ppt中导入的图片,想要从中间撕开,将一张照片分成两张照片的效果,可以使用矩形来实现,下面我们就来看看ppt矩形分开隔离图形的教程。jvzquC41yy}/lk:30pku1xkhkek0rx|gtrujp}486;8567mvon
1.AdobeIllustrator怎么使用切片工具切割图片?在图片中通过拖动鼠标左键,来确定切图的大小尺寸 如果想要改变切片的大小,通过选择工具栏中的-切片选择工具,来调整切片大小 将图片切好后,就需要导出文件,选择-文件-存储为web所用格式 将需要导出的切片全部选中,导出为jpg图片,然后选择-存储 将文件导出后,可以去存储位置查看效果,如图,已经将整张图片切为了3部分jvzquC41yy}/{~yw0et0s~juvkuo1}nygpe949;80jznn
2.绘画术语辞海录书画广角作《牡丹图》 ,光色艳发,妙穷毫厘。仔细观赏并可确信所画的是中午的牡丹,原来画面中的猫眼有“竖线”可见。又如五代画家黄筌写花卉翎毛因工细逼真,呼之欲出,而被苍鹰视为真物而袭之,此见于《圣朝名画评》 :“广政中昶命筌与其子居农 于八卦殿画四时山水及诸禽鸟花卉等,至为精备。其年冬昶将出猎,因按jvzquC41yy}/3Aftv0ipo8xjwj{b{rxjw1nvk6mwc/yiw6~w/eo.jjn/nw4tj}rn
3.ps如何给图形添加透视效果打开ps软件,这里我为了给大家做示范,新建了一个文件,在新建文件的基础上,我还新建了一个图层,选择矩形工具下的形状图层,颜色选择为蓝色, 选中形状图层后,移动鼠标画出一个矩形,点击快捷键ctrl+T,对所画的矩形进行框选, 在图形变成后,点击鼠标右键,弹出栏目,选择透视命令 jvzquC41i0vdqwqkpg4dqv3ep1~0;?61;2<56?;0jvsm
4.AI软件的要点总结4.矩形网格,可以改变格子的多少和大小,可以按上下左右键改变,属性:宽度 - 高度 - 倾斜等,取- 消分组都是一个个直线组成的网格。 5.极坐标,圆形的网格,蜘蛛网的感觉,可以按上下左右键进行改变数值,变圆的分割线的变化。 10、画笔工具B image.png jvzquC41yy}/lrfpuj{/exr1r1k9h952h:9c5B
5.知识库|聚观点IDE设计师Jessie-Jisun Lee将著名导演大卫林奇的照片不加修饰地放到了封面中。而使用方块隔开的字体则给人上图封面的设计者从心理测验所用的洛夏墨迹(Rorschach Inkblot test)中获得了灵感,这张封面表现了这本利用黄金分割比例连续製作愈来愈大的正方形,以弧形连接每一个正方形的对角,可以形成一个螺旋状的曲线jvzquC41eq{sun3lwi{bpmncp0ipo8rqf1mmq|xct{5wkn|0rjv@kmB565,nqmj?ngzug{+jqqq>UYJEKCR
6.ai怎么分割图形?ai剪切分割图形的两种教程Illustrator教程对于很多初学ai软件的朋友,它们觉得ai中不能分割图形,事实上ai完全可以分割图形。下面会给大家介绍两个方法来分割图片,希望对于初学AI的朋友有所帮助。 一、剪刀工具 1、打开ai的软件,执行菜单栏中的文件—新建,或者直接按快捷键Ctrl+N新建一个画布。在这里展示的是A4大小的画布,如下图所示。 jvzquC41yy}/lk:30pku1Rqnwuzsc}tt16673A80jvsm
7.流行的平面设计风格范文平面结构的基本元素也是点、线、面,并且彩陶的装饰形象在平面中也是适用的。彩陶纹饰一般均是采用对称、对比、韵律、分割、节奏等设计手法,利用点的大小、形状,线的疏密、长短、黑白、虚实,进行点、线、面合理组合的设计创作,这些多样化的设计方法是平面设计需要借鉴的。jvzquC41yy}/i€~qq0ipo8mcqyko1:=:257/j}rn
8.场景透视怎么画?适合0基础学习,教你如何画好透视的技巧!|远近|图图中,视高为2倍人高,A台子为一人高,B台子为1/2人高。 透视中矩形的分割和延伸 建筑庭有用的 a.平行变线分割法 其基本原理就是利用辅助线来分割变线A0。其中左上图中的AC即为辅助线,将其均分,然后向辅助灭点作虚线,虚线与变线的交点在变线上分割出的线段,即为变线上等距线段在透视上的变化规律。 jvzq<84m0uooc7hqo0io1jwvkerfa;8;;4?17:5a:h636==g22713Aqwv0nuou
9.电大网络计算机绘图,计算机绘图与AUTOCAD设计[031005217]本课程详细介绍了AUTOCAD的基础知识和操作技巧,包括先修课程要求、绘图内容、软件使用、图形管理、二维与三维绘图、文字处理、尺寸标注、图案填充、图块与外部参照、信息查询、格式转换与打印出图等内容。通过学习,学生能够掌握计算机绘图的基本技能,并能进行复杂的工程制图操作。 jvzquC41dnuh0lxfp0tfv8|gkzooa=75858438ftvkimg8igvcomu863:3>33;<
10.影视后期制作工程师模拟题这两个片段之间施加一个矩形划像切换,切换的对齐方式为End at cut,切像切换的入点为8秒。那么,划D.不能进行任何操作 12.在Color Correct特效中Curves调整方式的曲线图中,水平坐标和垂直坐标分别代表:位置且选择了“剃刀工具”之后,按下(B )键,同时单击鼠标左键,当前编辑线上所有轨道的素材被分割开来jvzq<84yyy4ykwjk{k/exr0ep5tjx|pgyy`3;990jznn
11.如何用3dmax拆分矩形?在3ds Max中拆分矩形(或其他几何体)是一个常用的操作,尤其是在建模和细化过程中。通过拆分,可以将对象分割成多个部分,方便后续的编辑和调整。以下是如何在3ds Max中拆分矩形的详细步骤。 1. 启动项目 首先,打开3ds Max并创建一个新项目,或者打开一个包含要拆分的矩形的现有项目文件。 jvzquC41yy}/5m;80eun1tz1pg}t1?5;20nuou