CN103871022B - 一种图像裁剪方法和装置 - Google Patents
一种图像裁剪方法和装置 Download PDFInfo
- Publication number
- CN103871022B CN103871022B CN201210537367.8A CN201210537367A CN103871022B CN 103871022 B CN103871022 B CN 103871022B CN 201210537367 A CN201210537367 A CN 201210537367A CN 103871022 B CN103871022 B CN 103871022B
- Authority
- CN
- China
- Prior art keywords
- image
- summit
- cutting
- crop window
- cropped
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Image Processing (AREA)
Abstract
本发明实施例公开了一种图像裁剪方法和装置。其中,该方法包括:对被裁剪图像按照Sutherland‑Hodgeman算法进行图像裁剪,得到初次裁剪图像;对所述初次裁剪图像按照Weiler‑Atherton算法进行图像裁剪,得到最终裁剪图像。根据本发明实施例,可以提高图像裁剪的执行效率,满足如导航地图这种实时性要求较高、数据量较大的领域对图像裁剪的应用需求。
Description
技术领域
本发明涉及图像处理技术领域,特别是涉及一种图像裁剪方法和装置。
背景技术
在图像处理中,图像裁剪是非常关键的基础技术。常见的裁剪算法有Sutherland-Hodgeman算法和Weiler-Atherton算法。其中,Sutherland-Hodgeman算法所使用的裁剪窗口必须是正四边形,Weiler-Atherton算法则不受此限制。另外,Sutherland-Hodgeman算法只能对凸多边形的图像进行图像裁剪,但是,一些实际应用要求对凹多边形的图像进行图像裁剪,而Weiler-Atherton算法解决了对凹多边形的图像进行图像裁剪的问题。可见,Weiler-Atherton算法比Sutherland-Hodgeman算法应用更广泛。
在Weiler-Atherton算法中,对被裁剪图像与裁剪窗口的交点类型进行了定义,按照被裁剪图像中该交点所在边界线进入裁剪窗口的方向,将该交点标记为入点或出点,具体地:被裁剪图像上的某一边界线按照顺时针走向,由裁剪窗口外的区域进入裁剪窗口内的区域,且与裁剪窗口的边界线相交,将该交点定义为“入点”;如果被裁剪图像的某一边界线按照顺时针走向,由裁剪窗口内的区域穿出裁剪窗口外的区域,且与裁剪窗口的边界线相交,将该交点定义为“出点”。由于被裁剪图像和裁剪窗口都为封闭的图形,因此,上述“入点”和“出点”必然是成对出现的。基于“入点”和“出点”的概念,Weiler-Atherton算法凹多边形的被裁剪图像进行图像裁剪的方法具体为:从被裁剪图像中的一个入点开始,当遇到入点时,按照顺时针方向沿着被裁剪图像的边界线搜集被裁剪图像的顶点,当遇到出点时,按照顺时针方向沿着裁剪窗口的边界线搜集被裁剪图像的顶点,按照上述规则交替地沿着被裁剪图像和裁剪窗口的边界线搜集被裁剪图像的顶点,直到回到起始的入点为止;最后,从被裁剪图像中未搜集过的入点中,选择一个入点作为新的起始点,重复上述搜集过程,依次类推,直到将所有的入点都搜集过为止,将搜集得到的点作为最终裁剪图像的顶点。
但是,在实现本发明的过程中,本发明的发明人发现利用Weiler-Atherton算法至少存在如下问题:
第一,采用Weiler-Atherton算法对应的裁剪窗口对被裁剪图像进行裁剪,并不会把被裁剪图像中位于裁剪窗口外部的顶点删除,因此裁剪得到的初次图像是包括被裁剪图像的所有原始顶点与被裁剪图像与裁剪窗口的交点,需要由两个数组分别保存被裁剪图像所有的顶点和所有交点、裁剪窗口的所有顶点和所有交点,存储的数据量非常大,占用较大的存储资源;
第二,在进行顶点搜集时,被裁剪图像和裁剪窗口的所有原始顶点、所有交点都要参与搜集过程,使得搜集效率很低。因此,在对图像裁剪的实时性、效率要求较高的导航地图等领域中,采用现有的Weiler-Atherton算法进行图像裁剪,远远不能满足要求。
发明内容
为了解决上述技术问题,本发明实施例提供了一种图像裁剪方法和装置,以节省存储资源,提高搜集效率以及图像裁剪的执行效率,满足如导航地图这种实时性要求较高、数据量较大的领域对图像裁剪的应用需求。
本发明实施例公开公开了如下技术方案:
一种图像裁剪方法,包括:
对被裁剪图像按照Sutherland-Hodgeman算法进行图像裁剪,得到初次裁剪图像;
对所述初次裁剪图像按照Weiler-Atherton算法进行图像裁剪,得到最终裁剪图像。
一种图像裁剪装置包括:
第一图像裁剪单元,用于对被裁剪图像按照Sutherland-Hodgeman算法进行图像裁剪,得到初次裁剪图像;
第二图像裁剪单元,用于对所述初次裁剪图像按照Weiler-Atherton算法进行图像裁剪,得到最终裁剪图像。
由上述实施例可以看出,一方面,由于在利用Weiler-Atherton算法进行图像裁剪之前,先按照Sutherland-Hodgeman算法进行图像裁剪,将被裁剪图像中的部分顶点给删除掉了,得到的初次裁剪图像与被裁剪图像相比较,减少了顶点数量,当利用Weiler-Atherton算法对经过Sutherland-Hodgeman算法处理后的图像(初次裁剪图像)进行裁剪时,只需要存储初次裁剪图像和裁剪窗口的顶点,减少了存储的数据量,节约了存储资源。另一方面,在进行顶点搜集时,只需要初次裁剪图像和裁剪窗口的顶点参与搜集过程,因此,提高了搜集效率。因此,本发明的图像裁剪算法可以满足实时性要求较高、数据量较大的应用领域,如导航地图等。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1本发明一种图像裁剪方法的一个实施例的流程图;
图2为本发明中Sutherland-Hodgeman算法的裁剪过程示意图;
图3为本发明中Weiler-Atherton算法的裁剪过程示意图;
图4为本发明图像裁剪过程的示意图;
图5为本发明一种图像裁剪方法的另一个实施例的流程图;
图6为本发明一种图像裁剪装置的一个实施例的结构图;
图7为本发明的图像裁剪装置中第一图像裁剪单元的一种结构图;
图8为本发明的图像裁剪装置中第一图像裁剪单元的另一种结构图;
图9为本发明的图像裁剪装置中第二图像裁剪单元的一种结构图;
图10为本发明的图像裁剪装置中第二图像裁剪单元的另一种结构图。
具体实施方式
本发明实施例提供了一种图像裁剪方法和装置。采用二次裁剪方式进行图像裁剪:首先,按照Sutherland-Hodgeman算法对被裁剪图像进行图像裁剪;然后,再按照Weiler-Atherton算法对经过Sutherland-Hodgeman算法裁剪后的图像进行图像裁剪。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例进行详细描述。
实施例一
请参阅图1,其为本发明一种图像裁剪方法的一个实施例的流程图,该方法包括以下步骤:
步骤101:对被裁剪图像按照Sutherland-Hodgeman算法进行图像裁剪,得到初次裁剪图像;
优选的,所述对被裁剪图像按照Sutherland-Hodgeman算法进行图像裁剪,得到初次裁剪图像,具体包括:采用Sutherland-Hodgeman算法对应的裁剪窗口对所述被裁剪图像进行裁剪,保留被裁剪图像位于所述被裁剪窗口内部的顶点,删除被裁剪图像位于所述被裁剪窗口外部的顶点;将被裁剪图像被保留的顶点,及所述被裁剪图像与所述裁剪窗口的交点,确定为构成所述初次裁剪图像的顶点;
进一步优选的,还包括:将被裁剪图像与裁剪窗口的交点,按照被裁剪图像中该交点所在边界线进入裁剪窗口的方向,标记为入点或出点,并将标记为入点或出点的交点作为裁剪窗口新增加的顶点。
例如,对被裁剪图像按照Sutherland-Hodgeman算法进行图像裁剪,得到初次裁剪图像包括:依次以裁剪窗口中在顺时针方向的各边界线为基准,判断被裁剪图像的各顶点是否与裁剪窗口位于当前基准的边界线和边界延长线同一侧;如果是,保留与裁剪窗口位于所述作为当前基准的边界线和边界延长线同一侧的顶点;否则,删除与裁剪窗口位于当前基准的边界线和边界延长线不同侧的顶点,将所述作为当前基准的边界线和边界延长线与所述被裁剪图像的边界线的交点作为新顶点插入到所述被裁剪图像中;在插入的新顶点中,将未与所述裁剪窗口的顶点重合的新顶点标记为入点或出点。
需要说明的是,本发明所提供的图像裁剪算法可以适用于凸多边形和凹多边形的被裁剪图像。
另外,在现有技术中,Sutherland-Hodgeman算法仅能用于处理凸多边形的图像,而在本发明的步骤101中,可用Sutherland-Hodgeman算法对凸多边形和凹多边形的被裁剪图像进行图像裁剪处理,即,本发明并不限定Sutherland-Hodgeman算法所处理的被裁剪图像的形状。
所谓凸多边形,也可称为平面多边形,与凹多边形对应。当把一个多边形任意一边向两方无限延长成为一条直线时,如果多边形的其他各边均在此直线的同旁,那么这个多边形就叫做凸多边形,也可以理解为通过凸多边形的任意一条边作平面,并与此多边形所在的平面相异,那么凸多边形的其他所有部分都在所作平面的同一侧。
当把一个各边不自交的多边形任意一边向两方无限延长成为一直线时,如果多边形的所有边中只要有一条边向两方无限延长成为一直线,其他各边不在此直线的同旁,那么这个多边形就叫做凹多边形。凹多边形有一个或多个内角大于180度。
例如,为了方便描述Sutherland-Hodgeman算法的图像裁剪的过程,下面以被裁剪图像为一个平行四边形(凸多边形)为例,详述其裁剪过程,当然,被裁剪图像也可以是任意一种凹多边形。如图2所示,被裁剪图像为一个平行四边形,裁剪窗口为一个正四边形,按照顺时针方向,被裁剪图像的四个顶点依次为:A、B、C和D,裁剪窗口的四个顶点依次为:a、b、c和d。按照顺时针方向,先以裁剪窗口的左边界线ab为基准,当判定被裁剪图像的顶点A和B与裁剪窗口位于左边界线ab的不同侧时,删除顶点A和B,并插入新顶点,即插入作为当前基准的边界线ab及其延长线与被裁剪图像的边界线的交点E和F,E和F为插入的新顶点,被裁剪图像变为E、F、C和D;然后以裁剪窗口的上边界线bc为基准,同样,当判定被裁剪图像的顶点C与裁剪窗口位于上边界线bc的不同侧时,删除顶点C,并插入新顶点,即插入作为当前基准的边界线bc及其延长线与被裁剪图像的边界线的交点G和H,G和H为插入的新顶点,被裁剪图像变为E、F、G、H和D;再以裁剪窗口的右边界线cd为基准,同样,当判定被裁剪图像的顶点H和D与裁剪窗口位于边界线cd及其的延长线的不同侧时,删除顶点H和D,并插入新顶点,即插入作为当前基准的边界线cd及其延长线与被裁剪图像的边界线的交点I和J,I和J为插入的新顶点,被裁剪图像变为E、F、G、I和J;最后以裁剪窗口的下边界线da为基准,同样,当判定被裁剪图像的顶点E与裁剪窗口位于边界线da及其延长线的不同侧时,删除顶点E,并插入新顶点,即插入作为当前基准的边界线da及其延长线与被裁剪图像的边界线的交点K和L,K和L为插入的新顶点,最终,经Sutherland-Hodgeman算法裁剪后的图像变为L、F、G、I、J和K。最后得到的新顶点为:L、F、G、I、J和K,其中的新顶点F、G、J和K为未与裁剪窗口的顶点重合的非重合新顶点,按照Weiler-Atherton算法中对入点和出点的定义,标记顶点F和J为入点,标记顶点G和K为出点。
步骤102:对所述初次裁剪图像按照Weiler-Atherton算法进行图像裁剪,得到裁剪后图像。
优选的,所述对所述初次裁剪图像按照Weiler-Atherton算法进行图像裁剪,得到最终裁剪图像,具体包括:采用Weiler-Atherton算法对所述初次裁剪图像和裁剪窗口的顶点进行计算,得到所述最终裁剪图像。
优选的,所述采用Weiler-Atherton算法对所述初次裁剪图像和裁剪窗口的顶点进行计算,得到所述最终裁剪图像,可采用以下两种方式中的任意一种得到:
方式1、以所述初次裁剪图像中的一个入点为起始点,按照顺时针方向沿着所述初次裁剪图像的边界线搜集所述初次裁剪图像的顶点,当遇到出点时,以该出点为起始点,按照顺时针方向沿着裁剪窗口的边界线搜集所述裁剪窗口的顶点,交替搜集直到回到起始的入点为止,将搜集得到的顶点确定为最终裁剪图像的顶点;从初次裁剪图像未搜集过的入点中,选择一个入点为新的起始点,并从所述新的起始点开始重新进行搜集,以此类推,直到所有的入点都搜集完为止。
为了方便描述,仍旧以图2所示的经Sutherland-Hodgeman算法裁剪后的图像(即初次裁剪图像,其顶点依次为L、F、G、I、J和K)为例,详述Weiler-Atherton算法裁剪过程。如图3所示,先选择入点F为起始点,当遇到入点时,按照顺时针方向沿着初次裁剪图像的边界线搜集其顶点,即沿着边界线FG搜集,遇到出点G时,按照顺时针方向沿着裁剪窗口的边界线搜集裁剪窗口的顶点,即沿着边界线GI和IJ搜集,遇到入点J时,再按照顺时针方向沿着初次裁剪图像的边界线搜集其顶点,即沿着边界线JK搜集,遇到出点K时,再按照顺时针方向沿着裁剪窗口的边界线搜集裁剪窗口的顶点,即沿着边界线KL和LF搜集,最终回到起始的入点F。经过上述搜集过程后,初次裁剪图像不存在未搜集的入点时,搜集结束。最终,可确定裁剪后的图像的顶点依次为L、F、G、I、J和K。
方式2、以所述初次裁剪图像中的一个出点为起始点,按照逆时针方向沿着所述初次裁剪图像的边界线搜集所述初次裁剪图像的顶点;当遇到入点时,以该入点为起始点,按照逆时针方向沿着裁剪窗口的边界线搜集所述裁剪窗口的顶点,交替搜集直到回到起始的出点为止,将搜集得到的顶点确定为最终裁剪图像的顶点;从初次裁剪图像的未搜集过的出点中,选择一个出点为新的起始点,并从所述新的起始点开始重新进行搜集,以此类推,直到所有的出点都搜集完为止。
一方面,由于在利用Weiler-Atherton算法进行图像裁剪之前,先按照Sutherland-Hodgeman算法进行图像裁剪,将被裁剪图像中的部分顶点给删除掉了,得到的初次裁剪图像与被裁剪图像相比较,减少了顶点数量,当利用Weiler-Atherton算法对经过Sutherland-Hodgeman算法处理后的图像(初次裁剪图像)进行裁剪时,只需要存储初次裁剪图像和裁剪窗口的顶点,减少了存储的数据量,节约了存储资源。另一方面,在进行顶点搜集时,只需要初次裁剪图像和裁剪窗口的顶点参与搜集过程,因此,提高了搜集效率。因此,本发明的图像裁剪算法可以满足实时性要求较高、数据量较大的应用领域,如导航地图等。
实施例二
下面以被裁剪图像为一个不规则的凹多边形为例,详细说明本发明对该凹多边形进行图像裁剪的方法。如图4所示的图像裁剪过程的示意图,被裁剪图像为一个凹多边形,且该凹多边形的顶点为(1、2、3、4、5、6、7和8),裁剪窗口为一个正四边形,且该正四边形的顶点为(A、B、C和D)。分别用两个数组存储被裁剪图像和裁剪窗口。请参阅图5,图5为本发明一种图像裁剪方法的另一个实施例的流程图,该裁剪方法包括如下步骤:
步骤501:用裁剪窗口的边界线AB对被裁剪图像进行裁剪;
具体地,按照顺时针方向,以裁剪窗口的边界线AB为当前基准,判定被裁剪图像的顶点1与裁剪窗口位于作为当前基准的边界线AB及其延长线的不同侧,删除顶点1,插入新顶点到被裁剪图像中,即,将作为当前基准的边界线AB及其延长线与被裁剪图像的边界线的交点a和g插入到被裁剪图像中,其中,标记新顶点a为入点,标记新顶点g为出点。此时,被裁剪图像的顶点为a、2、3、4、5、6、7、8和g。
步骤502:用裁剪窗口的边界线BC对被裁剪图像进行裁剪;
具体地,以裁剪窗口的边界线BC为当前基准,判定被裁剪图像的顶点3与裁剪窗口位于作为当前基准的边界线BC及其延长线的不同侧,删除顶点3,插入新顶点到被裁剪图像中,即,将作为当前基准的边界线BC及其延长线与被裁剪图像的边界线的交点b和c插入到被裁剪图像中,其中,标记新顶点c为入点,标记新顶点b为出点。此时,被裁剪图像的顶点为a、2、b、c、4、5、6、7、8和g。
步骤503:用裁剪窗口的边界线CD对被裁剪图像进行裁剪;
具体地,以裁剪窗口的边界线CD为当前基准,判定被裁剪图像的顶点7与裁剪窗口位于作为当前基准的边界线CD及其延长线的不同侧,删除顶点7,插入新顶点到被裁剪图像中,即,将作为当前基准的边界线CD及其延长线与被裁剪图像的边界线的交点f和h插入到被裁剪图像中,其中,标记新顶点h为入点,标记新顶点f为出点。此时,被裁剪图像的顶点为a、2、b、c、4、5、6、f、h、8和g。
步骤504:用裁剪窗口的边界线DA对被裁剪图形进行裁剪,得到初次裁剪图像;
具体地,以裁剪窗口的边界线DA为当前基准,判定被裁剪图像的顶点g、5、8和h与裁剪窗口位于作为当前基准的边界线DA及其延长线的不同侧,删除顶点g、5、8和h,插入新顶点到被裁剪图像中,即,将作为当前基准的边界线DA及其延长线与被裁剪图像的边界线的交点i、e、d和j插入到被裁剪图像中,其中,新顶点i和j分别于裁剪窗口的顶点D和A重合,新顶点d和e未与裁剪窗口的顶点重合,标记新顶点e为入点,标记新顶点d为出点。此时,初次裁剪图像的顶点为a、2、b、c、4、d、e、6、f、i和j,而a、c和e为入点,b、d和f为出点。将被裁剪图像与裁剪窗口的交点作为裁剪窗口新增加的顶点,得到裁剪窗口的顶点为A(与j重合)、a、B、b、c、C、f、D(与i重合)、e、d。
以上步骤501~步骤504完成了按照Sutherland-Hodgeman算法对被裁剪图像进行图像裁剪的工作,并标记了新顶点的属性(入点或出点)。当我们直接输出这个被Sutherland算法裁剪后的凹多边形时会发现,边de和边DA是重合的,在导航地图渲染的过程中,边de就会渲染出来,形成了一条细长的线段,这样是不正确的。为了解决凹多边形裁剪的这种问题,接下来,按照Weiler-Atherton算法对步骤504中的裁剪结果继续进行图像裁剪。
步骤505:从入点a、c和e中选择入点a为起始点,按照顺时针方向沿着初次裁剪图像的边界线a2和2b搜集初次裁剪图像的顶点2、b;
步骤506:在遇到出点b时,按照顺时针方向沿着裁剪窗口的边界线bc搜集裁剪窗口的顶点c;
步骤507:在遇到入点c时,按照顺时针方向沿着初次裁剪图像的边界线c4和4d搜集初次裁剪图像的顶点4、d;
步骤508:在遇到出点d时,按照顺时针方向沿着裁剪窗口的边界线dj和ja搜集裁剪窗口的顶点j、a,返回到起始点a;
步骤509:将初次裁剪图像未搜集过的入点e作为新的起始点,按照顺时针方向沿着初次裁剪图像的边界线e6和6f搜集初次裁剪图像的顶点6、f;
步骤510:在遇到出点f时,按照顺时针方向沿着裁剪窗口的边界线fi和ie搜集裁剪窗口的顶点i、e,返回到起始点e,结束裁剪。
最终裁剪后的多边形包括两个,一个多边形的顶点依次为:a、2、b、c、4、d和j,另一个多边形的顶点依次为:e、6、f、i和e。
实施例三
与上述一种图像裁剪方法相对应,本发明实施例还提供了一种图像裁剪装置。请参阅图6,其为本发明一种图像裁剪装置的一个实施例的结构图,该装置包括第一图像裁剪单元601和第二图像裁剪单元602。下面结合该装置的工作原理进一步介绍其内部结构以及连接关系。
第一图像裁剪单元601,用于对被裁剪图像按照Sutherland-Hodgeman算法进行图像裁剪,得到初次裁剪图像;
第二图像裁剪单元602,用于对所述初次裁剪图像按照Weiler-Atherton算法进行图像裁剪,得到裁剪后图像。
优选的,如图7所示,第一图像裁剪单元601包括:顶点处理子单元6011和初次裁剪图像确定子单元6012,其中,
顶点处理子单元6011,用于采用Sutherland-Hodgeman算法对应的裁剪窗口对所述被裁剪图像进行裁剪,保留被裁剪图像中位于所述被裁剪窗口内部的顶点,删除被裁剪图像中位于所述被裁剪窗口外部的顶点;
初次裁剪图像确定子单元6012,用于将被裁剪图像被保留的顶点,及所述被裁剪图像与所述裁剪窗口的交点,确定为构成所述初次裁剪图像的顶点;
则第二图像裁剪单元602具体用于:采用Weiler-Atherton算法对所述初次裁剪图像和裁剪窗口的顶点进行计算,得到所述最终裁剪图像。
进一步优选的,所述第一图像裁剪单元601,还包括标记子单元6013和裁剪窗口调整子单元6014,如图8所示:
标记子单元6013,用于将被裁剪图像与裁剪窗口的交点,按照被裁剪图像中该交点所在边界线进入裁剪窗口的方向,标记为入点或出点;
裁剪窗口调整子单元6014,用于将标记为入点或出点的交点作为裁剪窗口新增加的顶点。
优选的,如图9所示,第二图像裁剪单元602包括:第一搜集子单元6021和第一起始点更新子单元6022,其中,
第一搜集子单元6021,用于以初次裁剪图像中的一个入点为起始点,按照顺时针方向沿着所述初次裁剪图像的边界线搜集所述初次裁剪图像的顶点,当遇到出点时,以该出点为起始点,按照顺时针方向沿着裁剪窗口的边界线搜集所述裁剪窗口的顶点,交替搜集直到回到起始的入点为止,将搜集得到的顶点确定为最终裁剪图像的顶点;
第一起始点更新子单元6022,用于从初次裁剪图像的未搜集过的入点中,选择一个入点为新的起始点,并触发所述第一搜集子单元6021以所述新的起始点开始重新进行搜集,以此类推,直到所有的入点都搜集完为止。
可替换的,如图10所示,第二图像裁剪单元602,包括:
第二搜集子单元6023,用于以所述初次裁剪图像中的一个出点为起始点,按照逆时针方向沿着所述初次裁剪图像的边界线搜集所述初次裁剪图像的顶点,当遇到入点时,以该入点为起始点,按照逆时针方向沿着裁剪窗口的边界线搜集所述裁剪窗口的顶点,交替搜集直到回到起始的出点为止,将搜集得到的顶点确定为最终裁剪图像的顶点,并将标记为入点或出点的交点作为裁剪窗口新增加的顶点;
第二起始点更新子单元6024,用于从初次裁剪图像的未搜集过的出点中,选择一个出点为新的起始点,以便触发所述第二搜集子单元6023以所述新的起始点开始重新进行搜集,以此类推,直到所有的出点都搜集完为止。
优选的,被裁剪图像为凹多边形。
由上述实施例可以看出,一方面,由于在利用Weiler-Atherton算法进行图像裁剪之前,先按照Sutherland-Hodgeman算法进行图像裁剪,将被裁剪图像中位于裁剪窗口外部的原始顶点删除掉了,保留被裁剪图像中位于裁剪窗口内部的原始顶点,得到的初次裁剪图像的顶点是保留的原始顶点和被裁剪图像与裁剪窗口的交点,因此,存储的两组数据是被裁剪图像中保留的原始顶点和所有交点、裁剪窗口的所有原始顶点和交点,与现有技术相比,不需要存储被裁剪图像中的所有原始顶点,因此,减少了存储的数据量,节约了存储资源。另一方面,在进行顶点搜集时,只需要初次裁剪图像和裁剪窗口的顶点参与搜集过程,因此,提高了搜集效率。因此,本发明的图像裁剪算法可以满足实时性要求较高、数据量较大的应用领域,如导航地图等。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上对本发明所提供的一种图像裁剪方法和装置进行了详细介绍,本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种图像裁剪方法,其特征在于,包括:
对被裁剪图像按照Sutherland-Hodgeman算法进行图像裁剪,得到初次裁剪图像;
对所述初次裁剪图像按照Weiler-Atherton算法进行图像裁剪,得到最终裁剪图像;
其中,所述对被裁剪图像按照Sutherland-Hodgeman算法进行图像裁剪,得到初次裁剪图像,包括:
采用Sutherland-Hodgeman算法对应的裁剪窗口对所述被裁剪图像进行裁剪,保留被裁剪图像位于所述裁剪窗口内部的顶点,删除被裁剪图像位于所述裁剪窗口外部的顶点;
将被裁剪图像被保留的顶点,及所述被裁剪图像与所述裁剪窗口的交点,确定为构成所述初次裁剪图像的顶点;
其中,对所述初次裁剪图像按照Weiler-Atherton算法进行图像裁剪,得到最终裁剪图像,包括:
采用Weiler-Atherton算法对所述初次裁剪图像和裁剪窗口的顶点进行计算,得到所述最终裁剪图像。
2.根据权利要求1所述的方法,其特征在于,还包括:
将被裁剪图像与裁剪窗口的交点,按照被裁剪图像中该交点所在边界线进入裁剪窗口的方向,标记为入点或出点;
将标记为入点或出点的交点作为裁剪窗口新增加的顶点。
3.根据权利要求2所述的方法,其特征在于,所述采用Weiler-Atherton算法对所述初次裁剪图像和裁剪窗口的顶点进行计算,得到所述最终裁剪图像,包括:
以所述初次裁剪图像中的一个入点为起始点,按照顺时针方向沿着所述初次裁剪图像的边界线搜集所述初次裁剪图像的顶点,当遇到出点时,以该出点为起始点,按照顺时针方向沿着裁剪窗口的边界线搜集所述裁剪窗口的顶点,交替搜集直到回到起始的入点为止,将搜集得到的顶点确定为最终裁剪图像的顶点;
从初次裁剪图像中未搜集过的入点中,选择一个入点为新的起始点,以便从所述新的起始点开始重新进行搜集,以此类推,直到所有的入点都搜集完为止。
4.根据权利要求2所述的方法,其特征在于,所述采用Weiler-Atherton算法对所述初次裁剪图像和裁剪窗口的顶点进行计算,得到所述最终裁剪图像,包括:
以所述初次裁剪图像中的一个出点为起始点,按照逆时针方向沿着所述初次裁剪图像的边界线搜集所述初次裁剪图像的顶点;当遇到入点时,以该入点为起始点,按照逆时针方向沿着裁剪窗口的边界线搜集所述裁剪窗口的顶点,交替搜集直到回到起始的出点为止,将搜集得到的顶点确定为最终裁剪图像的顶点;
从初次裁剪图像中未搜集过的出点中,选择一个出点为新的起始点,以便从所述新的起始点开始重新进行搜集,以此类推,直到所有的出点都搜集完为止。
5.一种图像裁剪装置,其特征在于,包括:
第一图像裁剪单元,用于对被裁剪图像按照Sutherland-Hodgeman算法进行图像裁剪,得到初次裁剪图像;
第二图像裁剪单元,用于对所述初次裁剪图像按照Weiler-Atherton算法进行图像裁剪,得到最终裁剪图像;
其中,所述第一图像裁剪单元包括:
顶点处理子单元,用于采用Sutherland-Hodgeman算法对应的裁剪窗口对所述被裁剪图像进行裁剪,保留被裁剪图像位于所述裁剪窗口内部的顶点,删除被裁剪图像位于所述裁剪窗口外部的顶点;
初次裁剪图像确定子单元,用于将被裁剪图像被保留的顶点,及所述被裁剪图像与所述裁剪窗口的交点,确定为构成所述初次裁剪图像的顶点;
其中,所述第二图像裁剪单元,具体用于,采用Weiler-Atherton算法对所述初次裁剪图像和裁剪窗口的顶点进行计算,得到所述最终裁剪图像。
6.根据权利要求5所述的装置,其特征在于,所述第一图像裁剪单元,还包括:
标记子单元,用于将被裁剪图像与裁剪窗口的交点,按照被裁剪图像中该交点所在边界线进入裁剪窗口的方向,标记为入点或出点;
裁剪窗口调整子单元,将标记为入点或出点的交点作为裁剪窗口新增加的顶点。
7.根据权利要求6所述的装置,其特征在于,所述第二图像裁剪单元,包括:
第一搜集子单元,用于以初次裁剪图像中的一个入点为起始点,按照顺时针方向沿着所述初次裁剪图像的边界线搜集所述初次裁剪图像的顶点,当遇到出点时,以该出点为起始点,按照顺时针方向沿着裁剪窗口的边界线搜集所述裁剪窗口的顶点,交替搜集直到回到起始的入点为止,将搜集得到的顶点确定为最终裁剪图像的顶点;
第一起始点更新子单元,用于从初次裁剪图像中未搜集过的入点中,选择一个入点为新的起始点,并触发所述第一搜集子单元以所述新的起始点开始重新进行搜集,以此类推,直到所有的入点都搜集完为止。
8.根据权利要求6所述的装置,其特征在于,所述第二图像裁剪单元,包括:
第二搜集子单元,用于以所述初次裁剪图像中的一个出点为起始点,按照逆时针方向沿着所述初次裁剪图像的边界线搜集所述初次裁剪图像的顶点,当遇到入点时,以该入点为起始点,按照逆时针方向沿着裁剪窗口的边界线搜集所述裁剪窗口的顶点,交替搜集直到回到起始的出点为止,将搜集得到的顶点确定为最终裁剪图像的顶点;
第二起始点更新子单元,用于从初次裁剪图像中未搜集过的出点中,选择一个出点为新的起始点,并触发所述第二搜集子单元以所述新的起始点开始重新进行搜集,以此类推,直到所有的出点都搜集完为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210537367.8A CN103871022B (zh) | 2012-12-12 | 2012-12-12 | 一种图像裁剪方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210537367.8A CN103871022B (zh) | 2012-12-12 | 2012-12-12 | 一种图像裁剪方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103871022A CN103871022A (zh) | 2014-06-18 |
CN103871022B true CN103871022B (zh) | 2017-02-08 |
Family
ID=50909531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210537367.8A Active CN103871022B (zh) | 2012-12-12 | 2012-12-12 | 一种图像裁剪方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103871022B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105427240B (zh) * | 2015-12-08 | 2019-01-04 | 豪威科技(上海)有限公司 | 图像裁剪方法 |
CN106204458B (zh) * | 2016-07-12 | 2019-04-23 | 北京理工大学 | 一种基于运动几何量约束的视频稳像裁剪控制方法 |
CN108986011B (zh) * | 2018-07-19 | 2023-07-04 | 南京军微半导体科技有限公司 | 平面剪裁加速器 |
CN109727252B (zh) * | 2019-01-29 | 2020-12-04 | 广联达科技股份有限公司 | 一种任意分割线分割多边形的方法 |
CN111784695B (zh) * | 2020-06-01 | 2024-03-22 | 北京像素软件科技股份有限公司 | 图形的裁剪方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6256551B1 (en) * | 1997-08-27 | 2001-07-03 | Brother Kogyo Kabushiki Kaisha | Embroidery data production upon partitioning a large-size embroidery pattern into several regions |
CN101261744A (zh) * | 2008-03-27 | 2008-09-10 | 威盛电子股份有限公司 | 绘图处理器中的保护带剪切系统、保护带剪切方法 |
CN102360507A (zh) * | 2011-10-19 | 2012-02-22 | 浙江大学 | 一种基于交点排序的多边形裁剪的方法 |
-
2012
- 2012-12-12 CN CN201210537367.8A patent/CN103871022B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6256551B1 (en) * | 1997-08-27 | 2001-07-03 | Brother Kogyo Kabushiki Kaisha | Embroidery data production upon partitioning a large-size embroidery pattern into several regions |
CN101261744A (zh) * | 2008-03-27 | 2008-09-10 | 威盛电子股份有限公司 | 绘图处理器中的保护带剪切系统、保护带剪切方法 |
CN102360507A (zh) * | 2011-10-19 | 2012-02-22 | 浙江大学 | 一种基于交点排序的多边形裁剪的方法 |
Non-Patent Citations (3)
Title |
---|
一种新的矢量数据多边形的快速裁剪算法;张钧 等;《中国图象图形学报》;20081231;第13卷(第12期);第2409-2413页 * |
封闭曲线裁剪算法在矢量地图显示中的应用;安添琳;《测绘与空间地理信息》;20120831;第35卷(第8期);第170-172页 * |
平面多边形裁剪算法评述;林芳 等;《西安建筑科技大学学报(自然科学版)》;20030331;第35卷(第1期);第95-99页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103871022A (zh) | 2014-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103871022B (zh) | 一种图像裁剪方法和装置 | |
EP3605264A1 (en) | Method and device for determining lane center line | |
US9207678B2 (en) | Method and apparatus for constructing map for mobile robot | |
WO2022089018A1 (zh) | 三维矢量地图的三维矢量数据切片方法、装置及电子设备 | |
US9983760B2 (en) | Apparatus, method and computer readable recording medium for arranging a plurality of items automatically in a canvas | |
WO2018094741A1 (zh) | 一种航线编辑方法、装置及控制设备 | |
CN108170807B (zh) | 地图数据的处理、地图绘制方法、装置、设备及存储介质 | |
CN103927713A (zh) | 图片缩略图的获取方法及装置 | |
CN103793178B (zh) | 一种移动设备触摸屏中矢量图形编辑方法 | |
CN104463942B (zh) | 三维图像裁剪方法及装置 | |
WO2018058968A1 (zh) | 导航的路径信息的处理方法、装置、设备及计算机存储介质 | |
CN109579858A (zh) | 导航数据处理方法、装置、设备及存储介质 | |
CN104331928A (zh) | 一种基于三角网的等高线高程自动赋值方法 | |
CN113590005B (zh) | 多边形矢量地图的标注方法、装置、电子设备及存储介质 | |
CN113867644B (zh) | 磁盘阵列优化方法、装置、计算机设备及存储介质 | |
WO2022062355A1 (zh) | 一种融合定位方法及装置 | |
CN111998863A (zh) | 路口生成方法和装置 | |
CN104915053A (zh) | 一种界面控件的位置确定方法和装置 | |
CN113867850B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN105677843A (zh) | 一种自动获取宗地四至属性的方法 | |
CN106934331A (zh) | 一种指纹图像拼接方法及装置 | |
CN106649860B (zh) | 一种应用在聚合文件上的碎片整理方法 | |
CN112529984B (zh) | 绘制多边形的方法、装置、电子设备及存储介质 | |
CN108564637A (zh) | 几何模型排布方法及装置 | |
CN111782307A (zh) | 地图的渲染方法、样式切换方法、相关装置和导航客户端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200511 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: Daheng Technology Building No. three Beijing 100086 Haidian District Suzhou Street 16 layer 2. Patentee before: AUTONAVI INFORMATION TECHNOLOGY Co.,Ltd. |