CN116416264A - 一种凸包的计算方法、装置、设备及介质 - Google Patents

一种凸包的计算方法、装置、设备及介质 Download PDF

Info

Publication number
CN116416264A
CN116416264A CN202310014180.8A CN202310014180A CN116416264A CN 116416264 A CN116416264 A CN 116416264A CN 202310014180 A CN202310014180 A CN 202310014180A CN 116416264 A CN116416264 A CN 116416264A
Authority
CN
China
Prior art keywords
convex hull
convex
coordinate
marking
rows
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.)
Pending
Application number
CN202310014180.8A
Other languages
English (en)
Inventor
赵雅琦
王蕴卓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Luoyang Qizhuo Technology Co ltd
Original Assignee
Luoyang Qizhuo Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Luoyang Qizhuo Technology Co ltd filed Critical Luoyang Qizhuo Technology Co ltd
Priority to CN202310014180.8A priority Critical patent/CN116416264A/zh
Publication of CN116416264A publication Critical patent/CN116416264A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/187Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20164Salient point detection; Corner detection

Abstract

本发明涉及几何图像计算技术领域,提供了一种凸包计算方法、装置、设备及介质,包括:获取图像并进行预处理,得到凸包区域;对所述凸包区域进行连通域标记,得到凸包高度,并将所述高度转换为凸包行数;根据所述凸包行数对每行左右端点进行标记,得到凸包边界点集合。本发明对凸包区域左右两侧的边界点分别处理,可以利用多核处理器或者多线程并行完成,在得到目标边界点的同时,即可计算其是否是凸包点,减少了时间消耗,提高了实时性。

Description

一种凸包的计算方法、装置、设备及介质
技术领域
本发明属于几何图像计算技术领域,尤其涉及一种凸包的计算方法、装置、设备和介质。
背景技术
凸包是计算机图像处理的一个重要概念,在图像处理、计算机图像、模式识别等多个方面都有着广泛的应用,计算图像的最小外接矩形等几何信息离不开图像凸包的计算。
对应一个二维多边形Z,如果Z上的一个点p沿着Z的边逆时针移动,若多边形Z内的点都在该点P的内侧,则Z是凸多边形。二维凸包是指一个最小凸多边形,使得图像Z中的点均位于该凸多边形上或者内部,凸包就是计算得到该多边形的顶点。
目前凸包计算经典算法由Graham扫描法、分治算法、Jarvis步进算法,但这些算法复杂度相对较高,尤其对面积较大的图像计算耗时较长,在工业应用中实时性欠佳。
发明内容
本发明实施例提供了一种凸包的计算方法、装置、设备及介质,可以解决凸包计算工程中耗时较多,不利于实时处理问题。
第一方面,本发明实施例提供了一种凸包的计算方法,包括:
获取图像并进行预处理,得到凸包区域;
对所述凸包区域进行连通域标记,得到凸包高度,并将所述高度转换为凸包行数;
根据所述凸包行数对每行左右端点进行标记,得到凸包边界点集合。
进一步的,所述获取图像并进行预处理,所述预处理方法为二值化。
进一步的,在所述根据所述凸包行数对每行左右端点进行标记之前,还包括:
根据所述图像的左上角为原点,向右为X方向正方向,向下为Y方向正方向建立坐标系。
进一步的,所述根据所述凸包行数对每行左右端点进行标记,得到凸包边界点集合,包括:
建立两个数组,所述数组大小等于凸包的行数;
根据所述凸包行数对所述凸包区域进行遍历,得到有效端点;
获取所述有效端点并合并,得到所述凸包边界点集合。
进一步的,所述建立两个数组,所述数组大小等于凸包的行数,根据所述凸包行数对所述凸包区域进行遍历,得到有效端点,包括:
将所述两个数组分为左侧坐标数组和右侧坐标数组;
获取所述凸包区域每行左端点和右端点,并将所述左端点填充至所述左侧坐标数组中,将所述右端点填充至所述右侧坐标数组中;
根据左侧坐标数组中的左端点与指定端点建立直线方程f(t),依次将所述左侧坐标数组中的左端点的y坐标代入所述直线方程f(t),若y坐标在对应直线方程的x坐标都不大于该左端点在坐标数组中的x坐标,则该左端点有效;
根据右侧坐标数组中的右端点与指定端点建立直线方程g(t),依次将所述右侧坐标数组中的右端点的y坐标代入所述直线方程g(t),若y坐标在对应直线方程的x坐标都不小于该右端点在坐标数组中的x坐标,则该右端点有效。
进一步的,对所述凸包区域进行连通域标记,得到凸包高度,并将所述高度转换为凸包行数,包括:
根据8邻域连通法对所述凸包区域进行连通域标记。
进一步的,在所述得到凸包边界点集合后,将所述凸包边界点集合中有效端点依次连接得到所述凸包区域的最小凸多边形。
第二方面,本发明实施例提供了一种凸包计算的装置,包括:
获取模块:用于获取图像并进行预处理,得到凸包区域;
转换模块:用于对所述凸包区域进行连通域标记,得到凸包高度,并将所述高度转换为凸包行数;
标记模块:用于根据所述凸包行数对每行左右端点进行标记,将标记后有效端点合并,得到凸包边界点集合。
本发明实施例的第三方面提了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
本发明实施例的第四方面提了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例获取图像并进行预处理,得到凸包区域;对凸包区域进行连通域标记,得到凸包高度,并将高度转换为凸包行数;根据凸包行数对每行左右端点进行标记,将标记后有效端点合并,得到凸包边界点集合。本发明实施例的凸包的计算方法,在得到目标边界点的同时,即可计算其是否凸包点,减少了时间消耗,提高了实时性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种凸包的计算方法的流程示意图;
图2是本发明一实施例提供的一种对凸包有效端点标记的方法流程示意图;
图3是本发明一实施例提供的一种对图像二值化处理的方法示意图;
图4是本发明一实施例提供的一种图像二值化处理后的示意图;
图5—图10是本发明一实施例提供的一种凸包区端点标记示意图;
图11是本发明一实施例提供的一种凸包区别框定的示意图;
图12是本发明一实施例提供的一种凸包的计算装置的结构示意图;
图13是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
应当理解,当在本发明说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本发明说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本发明说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
现有的凸包计算方法计算量较大,例如Graham扫描法,需要先计算顶点和其他每个点的幅角和距离,再根据幅角、距离大小排序,幅角、距离计算以及排序较为耗时,在工业检测中,当目标面积较大,或者目标数量较多时,该处理过程耗时较多,不利于实时处理。为解决上述问题,本发明实施例提供了一种凸包计算的方法,利用多核处理器或者多线程并行完成凸包的计算。
图1示出了本发明实施例方法的流程构示意图,具体包括:
S100:获取图像并进行预处理,得到凸包区域;
在获取到包含凸包区域的图像后,首先对图像进行预处理,预处理的方法可以为二值化,其中二值化是图像处理的一个通用方法,即将一幅图像按照一定的门限进行分割,一般将大于门限的灰度值修改为1或者255,小于门限的灰度值修改为0。二值化处理看起来是图表形式,实际上是将图像转换为了二维的数据格式显示出来,每个格子中的值,就是图像对应点的灰度值。二值化的目的是将目标区域与背景进行分离,便于提取目标信息。二值化后,图像尺寸保持不变的,从而将凸包所在的图像区域与背景区域进行明显区分,得到凸包区域。
S101:对凸包区域进行连通域标记,得到凸包高度,并将高度转换为凸包行数。
具体的,获得凸包区域后,对该凸包区域进行目标连通域标记,常用的连通域标记算法规则为8邻域连通,即给8邻域连通的像素点分配同一个序号,表示这些点属于同一个图像,便于一幅图像存在多个凸包图像时对同一凸包图像的像素点查找,同时得到凸包区域的高度,将凸包区域的高度进行转换后得到凸包行数。具体的,图像是二维的矩阵,类似棋盘格,图形的高度也就是图形的行数。高度的单位是行,所以根据凸包区域的高度可以转换成凸包行数。
S102:根据凸包行数对每行左右端点进行标记,得到凸包边界点集合。
在一种实施例中,在根据凸包行数对每行左右端点进行标记之前,根据图像建立坐标系,以图像的左上角为原点,向右为X方向正方向,向下为Y方向正方向。图像可以理解为一个二维的棋盘方格,例如分辨率1024*768的图像,水平有1024个点,垂直有768个点,共1024*768个方格组成,每个方格都是一个像素点,在电脑上将一幅图像高倍放大,将看到很多颗粒块,这些颗粒块就是一个个像素点。将图像的左上角的棋盘方格坐标定义为原点(0,0),坐标轴X轴为图像最上方的水平边界,向右为正;Y轴为图像左侧的垂直边界,向下为正;这是本发明对图像坐标系的定义,在整个处理过程中坐标系是保持不变的,与图像是否二值化无关,也就是说,图像二值化后坐标系仍保持不变。
对二值化的图像建立坐标系后,根据凸包行数对每行左右端点进行标记,得到凸包边界点集合,请参阅图2,图2是本发明提供的一种对凸包有效端点标记的方法流程示意图,如图2所示,具体如下:
S1021:建立两个数组,数组大小等于凸包的行数。
坐标系建立好后,建立两个数组,两个数组分别存放左侧端点坐标和右侧端点坐标,命名为左侧坐标数组和右侧坐标数组,数组大小等于凸包的行数。
S1022:根据凸包行数对图像凸包区域进行遍历,得到有效端点。
在一种实施例中,获取所述凸包区域每行左端点和右端点,并将所述左端点填充至所述左侧坐标数组中,将所述右端点填充至所述右侧坐标数组中;根据左侧坐标数组中的左端点与指定端点建立直线方程f(t),依次将所述左侧坐标数组中的左端点的y坐标代入所述直线方程f(t),若y坐标在对应直线方程的x坐标都不大于该左端点在坐标数组中的x坐标,则该左端点有效;根据右侧坐标数组中的右端点与指定端点建立直线方程g(t),依次将所述右侧坐标数组中的右端点的y坐标代入所述直线方程g(t),若y坐标在对应直线方程的x坐标都不小于该右端点在坐标数组中的x坐标,则该右端点有效。
具体的,从第三行开始,依次计算左侧坐标数组中当前行n与第n-1行至第二行中第k个左端点的直线方程f(t),对每条直线方程,将第1行至第n-2行的每个左端点的y坐标代入该直线方程,如果每个y坐标在对应直线方程的x坐标都不大于该左端点在坐标数组中的x坐标,则k行的左端点有效,停止当前搜索,换n+1行左端点开始新的搜索;否则,k行的左端点无效,继续对下一个直线方程f(t)进行判断。
依次计算右侧坐标数组中当前行n与第n-1行至第二行中第p个右端点的直线方程,对每条直线方程g(t),将第1行至第n-2行的每个右端点的y坐标代入该直线方程,如果每个y坐标在对应直线方程的x坐标都不小于该右端点在坐标数组中的x坐标,则p行的右端点有效,停止当前搜索,换n+1行开始新的搜索;否则,p行的右端点无效,继续对下一个直线方程g(t)进行判断。
具体的,对该图像凸包区域,从上往下开始遍历,获取该凸包区域第一行的左右2个端点CONVEX_LEFT1和CONVEX_RIGHT1的坐标,分别记录到左侧坐标数组和右侧坐标数组的单元[0]中,并标记该端点有效。这两个端点之间可以不连续,如果该行只有一个点,则该点既是左端点,也是右端点,后续端点同样适用该规则。
获取该凸包区域第二行的左右两个端点CONVEX_LEFT2和CONVEX_RIGHT2,分别记录到左侧坐标数组和右侧坐标数组的单元[1]中,并标记该端点有效;录到左侧坐标数组和右侧坐标数组的单元[1]中,并标记该端点有效。
获取该凸包区域第三行的左右两个端点CONVEX_LEFT3和CONVEX_RIGHT3,分别记录到左侧坐标数组和右侧坐标数组的单元[2]中,并标记该端点有效。
计算CONVEX_RIGHT3与CONVEX_RIGHT2两点所决定的直线方程一,将CONVEX_RIGHT1的y坐标带入直线方程一,计算出CONVEX_RIGHT1的y坐标在直线上所对应的x坐标,如果得到的x坐标不小于CONVEX_RIGHT1点的x坐标,表示CONVEX_RIGHT1位于CONVEX_RIGHT3与CONVEX_RIGHT2两点所决定的直线方程一的内侧,则CONVEX_RIGHT2属于凸包点,标记CONVEX_RIGHT2端点为有效,反之,该端点无效;计算CONVEX_LEFT3与CONVEX_LEFT2两点所决定的直线方程二,将CONVEX_LEFT1的y坐标带入直线方程二,计算出该y坐标在该直线上所对应的x坐标;得到的x坐标不大于CONVEX_LEFT1点的x坐标,表示CONVEX_LEFT1位于CONVEX_LEFT3与CONVEX_LEFT2两点所决定的直线方程的内侧,则CONVEX_LEFT2属于凸包点,标记CONVEX_LEFT2端点为有效,反之,该端点无效。
进一步的,获取该凸包下一行的左右两个端点CONVEX_LEFTn和CONVEX_RIGHTn,分别记录到左侧坐标数组和右侧坐标数组的单元[n-1]中,并标记该端点有效。
倒序逐个遍历CONVEX_RIGHTn-1到CONVEX_RIGHT2中每个标记为有效的端点CONVEX_RIGHTt:计算CONVEX_RIGHTt与CONVEX_RIGHTn所决定的直线方程三,遍历CONVEX_RIGHT1到CONVEX_RIGHTt-1的每个标记为有效的端点CONVEX_RIGHTu,将CONVEX_RIGHTu的y坐标代入直线方程二,计算出该y坐标在该直线上所对应的x坐标,如果得到的x坐标小于CONVEX_RIGHTu的x坐标,则表示CONVEX_RIGHTu位于CONVEX_RIGHTt和CONVEX_RIGHTn所在的直线外侧,则CONVEX_RIGHTt不是凸包点,标记CONVEX_RIGHTt端点无效,继续遍历直到完成右端点有效端点的遍历。如果遍历过程中,每个CONVEX_RIGHTu都位于直线的内侧,则CONVEX_RIGHTt是凸包点,停止当前搜索。换下一行开始判断。
倒序逐个遍历CONVEX_LEFTn-1到CONVEX_LEFT2中每个标记为有效的端点CONVEX_LEFTt:计算CONVEX_LEFTt与CONVEX_LEFTn所决定的直线方程四,遍历CONVEX_LEFT1到CONVEX_LEFTt-1的每个标记为有效的端点CONVEX_LEFTu:将CONVEX_LEFTu的y坐标代入直线方程四,计算出该y坐标在该直线上所对应的x坐标,如果x得到的x坐标大于CONVEX_LEFTu的x坐标,则表示CONVEX_LEFTu位于CONVEX_LEFTt和CONVEX_LEFTn所在的直线外侧,则CONVEX_LEFTt不是凸包点,标记CONVEX_LEFTt端点无效,继续遍历直到完成左端点有效端点的遍历。如果遍历过程中,每个CONVEX_LEFTu都位于直线的内侧,则CONVEX_LEFTt是凸包点,停止当前搜索。换下一行开始判断。
S1023:获取有效端点并合并,得到凸包边界点集合。
进一步的,在完成该凸包区域所有行的凸包点计算后,将左侧和右侧有效凸包端点坐标合并到同一个集合CONVEX;如果凸包区域的第一行只有一个像素点,则第一行得到的左右端点相同,在集合CONVEX中保留一个;如果凸包区域的最后一行只有一个像素点,则最后一行得到的左右端点相同,在集合CONVEX中保留一个,得到完整的凸包边界点集。
进一步的,在本发明实施例中,在所述得到凸包边界点集合后,将所述凸包边界点集合中有效端点依次连接得到所述凸包区域的最小凸多边形。
本发明实施例提供的一种凸包计算方法,能够根据凸包的特点,对二值化后的凸包区域由上到下遍历,对该凸包区域的左右侧边界点,通过计算两点的直线方程来判断凸包顶点,且左右侧边界点可以同时参与计算,将计算时间进一步降低1/2。
本发明实施例还提供一种凸包的具体计算方法,该方法包括如下步骤:
S200:获取图像并进行预处理,得到凸包区域。
如图3所示,对图像进行二值化处理,图3中凸包区域灰度在190,周围背景灰度为100,门限设置为150,小于150的修改为0,大于150的修改为255,即可得到二值化图如下图4,其中的0就是图4中的黑色点,255就是图4中白色点,二值化只是转换为了数据形式,方便得到凸包区域。
S201:对凸包区域进行连通域标记,得到凸包高度,并将高度转换为凸包行数。
将凸包区域进行连通域标记转换后得到凸包行数,方法与S101中相同。
S202:根据凸包行数对每行左右端点进行标记,将标记后有效端点合并,得到凸包边界点集合。
在一种实施例中,在根据凸包行数对每行左右端点进行标记之前,根据图像建立坐标系,以图像的左上角为原点,向右为X方向正方向,向下为Y方向正方向。如图3和图4所示,图3和图4坐标系原点仍是整幅图像的左上角的点,在整个处理过程中是保持不变的,与图像是否二值化是没有关系的。建立坐标系的方法与S102中相同。
对二值化的图像建立坐标系后,根据凸包行数对每行左右端点进行标记,将标记后有效端点合并,得到凸包边界点集合,标记过程具体如下:
S2021:建立两个数组,数组大小等于凸包的行数。
具体的,数组建立方法与S1021相同。
S2022:根据凸包行数对图像凸包区域进行遍历,得到有效端点。
在本发明实施例中,以凸包的行数共14行来进行遍历。首先,寻找已经二值化后的图像第一行左右端点CONVEX_LEFT01和CONVEX_RIGHT01。如图5中椭圆框标记的2个点,虽然2个点不连续,中间被0隔开,但由于都属于该凸包区域,所以分别记录为CONVEX_LEFT01和CONVEX_RIGHT01。寻找第二行的左右端点CONVEX_LEFT02和CONVEX_RIGHT02,该行只有1个点,则该点既是左端点,又是右端点,如图6中椭圆框标记的1个点。寻找第三行的左右端点CONVEX_LEFT03和CONVEX_RIGHT03,如图7中椭圆框标记的2个点。计算右侧第2个端点和第3个端点所决定的直线,如图8中的直线,第一行的右侧端点x坐标位于该直线的右侧,则第2个端点不是凸包上的点,标记其无效;计算左侧第2个端点和第3个端点所决定的直线,如图9中的直线,左侧第1个端点位于该直线的左侧,则第2个端点不是凸包上的点,标记其无效。
进一步的,如图10所示获取该凸包区域最后一行也就是第14行的左右两个端点CONVEX_LEFT014和CONVEX_RIGHT014,分别记录到左侧坐标数组和右侧坐标数组的单元[13]中,并标记该端点有效。以左侧端点进行举例说明,找到左侧第14个左端点和第13个左端点,图10中方框,首先计算第14个左端点和第13个左端点的直线方程,发现第1个左端点位于其左侧,则第13个左端点不是凸包点,标记第13个左端点无效;继续计算第14个点和第12个点的直线方程,同样第12个点不是凸包点,标记该点无效;直到第13个左端点和第9个左端点的直线,发现第1个左端点到第8个左端点都不在该直线的左侧,则第9个点为凸包点。
经过计算,左侧第1个左端点到第14个左端点,此时仅第1、9、14有效。
S2023:获取有效端点并合并,得到凸包边界点集合。
具体的得到完整的凸包边界点集方法与S1023中相同。
经过计算,在得到凸包边界点集合后,将凸包边界点集合中有效端点依次连接得到所述凸包区域的最小凸多边形,如图11所示。
对应于上文实施例所述的凸包的计算方法,图12示出了本发明实施例提供的一种凸包的计算装置的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
参照图12,该凸包的计算装置包括:
获取模块1201:用于获取图像并进行预处理,得到凸包区域;
转换模块1202:用于对所述凸包区域进行连通域标记,得到凸包高度,并将所述高度转换为凸包行数;
标记模块1203:用于根据所述凸包行数对每行左右端点进行标记,将标记后有效端点合并,得到凸包边界点集合。
进一步的,该凸包的计算装置还包括:
框定模块:用于根据得到凸包边界点集合,将凸包边界点集合中有效端点依次连接得到凸包区域的最小凸多边形。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
请参阅图13,图13是本发明实施例提供的一种电子设备的结构示意图。如图13所示,该电子设备可以包括处理器1310(Center Processing Unit,CPU)、存储器1320、输入设备1330和输出设备1340等,输入设备1330可以包括键盘、鼠标、触摸屏等,输出设备1340可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(CathodeRay Tube,CRT)等。
存储器1320可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器1310提供存储器1320中存储的程序指令和数据。在本发明实施例中,存储器1320可以用于存储本发明实施例中任一种凸包的计算方法的程序。
处理器1310通过调用存储器1320存储的程序指令,处理器1310用于按照获得的程序指令执行本发明实施例中任一种凸包的计算方法。
基于上述实施例,本发明实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的批量处理渲染物的方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种凸包的计算方法,其特征在于,包括:
获取图像并进行预处理,得到凸包区域;
对所述凸包区域进行连通域标记,得到凸包高度,并将所述高度转换为凸包行数;
根据所述凸包行数对每行左右端点进行标记,得到凸包边界点集合。
2.如权利要求1所述的凸包的计算方法,其特征在于,所述获取图像并进行预处理,所述预处理方法为二值化处理方法。
3.如权利要求1所述的凸包的计算方法,其特征在于,在所述根据所述凸包行数对每行左右端点进行标记之前,还包括:
根据所述图像的左上角为原点,向右为X方向正方向,向下为Y方向正方向建立坐标系。
4.如权利要求1所述的凸包的计算方法,其特征在于,所述根据所述凸包行数对每行左右端点进行标记,得到凸包边界点集合,包括:
建立两个数组,所述数组大小等于凸包的行数;
根据所述凸包行数对所述凸包区域进行遍历,得到有效端点;
获取所述有效端点并合并,得到所述凸包边界点集合。
5.如权利要求4所述的凸包的计算方法,其特征在于,所述建立两个数组,所述数组大小等于凸包的行数,根据所述凸包行数对所述凸包区域进行遍历,得到有效端点,包括:
将所述两个数组分为左侧坐标数组和右侧坐标数组;
获取所述凸包区域每行左端点和右端点,并将所述左端点填充至所述左侧坐标数组中,将所述右端点填充至所述右侧坐标数组中;
根据左侧坐标数组中的左端点与指定端点建立直线方程f(t),依次将所述左侧坐标数组中的左端点的y坐标代入所述直线方程f(t),若y坐标在对应直线方程的x坐标都不大于该左端点在坐标数组中的x坐标,则该左端点有效;
根据右侧坐标数组中的右端点与指定端点建立直线方程g(t),依次将所述右侧坐标数组中的右端点的y坐标代入所述直线方程g(t),若y坐标在对应直线方程的x坐标都不小于该右端点在坐标数组中的x坐标,则该右端点有效。
6.如权利要求1所述的凸包的计算方法,其特征在于,对所述凸包区域进行连通域标记,得到凸包高度,并将所述高度转换为凸包行数,包括:
根据8邻域连通法对所述凸包区域进行连通域标记。
7.如权利要求1所述的凸包的计算方法,其特征在于,在所述得到凸包边界点集合后,将所述凸包边界点集合中有效端点依次连接得到所述凸包区域的最小凸多边形。
8.一种凸包的计算装置,其特征在于,包括:
获取模块:用于获取图像并进行预处理,得到凸包区域;
转换模块:用于对所述凸包区域进行连通域标记,得到凸包高度,并将所述高度转换为凸包行数;
标记模块:用于根据所述凸包行数对每行左右端点进行标记,将标记后有效端点合并,得到凸包边界点集合。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202310014180.8A 2023-01-05 2023-01-05 一种凸包的计算方法、装置、设备及介质 Pending CN116416264A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310014180.8A CN116416264A (zh) 2023-01-05 2023-01-05 一种凸包的计算方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310014180.8A CN116416264A (zh) 2023-01-05 2023-01-05 一种凸包的计算方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN116416264A true CN116416264A (zh) 2023-07-11

Family

ID=87048716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310014180.8A Pending CN116416264A (zh) 2023-01-05 2023-01-05 一种凸包的计算方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116416264A (zh)

Similar Documents

Publication Publication Date Title
CN114972329A (zh) 基于图像处理的表面缺陷检测仪的图像增强方法及系统
CN110781885A (zh) 基于图像处理的文本检测方法、装置、介质及电子设备
CN101727580B (zh) 图像处理装置、图像处理单元和图像处理方法
CN108961230B (zh) 结构表面裂缝特征的识别与提取方法
CN108334879B (zh) 一种区域提取方法、系统及终端设备
CN106062824A (zh) 边缘检测装置、边缘检测方法和程序
WO2017024443A1 (zh) 一种高效并行矢量数据可视化方法
CN106845484A (zh) 一种一维码区域的定位方法及装置
CN110570445A (zh) 一种图像分割方法、装置、终端及可读介质
CN111739020A (zh) 周期纹理背景缺陷标签自动标注方法、装置、设备及介质
CN113221895A (zh) 小目标检测方法、装置、设备及介质
JP5254250B2 (ja) ベクトルグラフィックをラスター化するプロセスにおいて境界を発生させるための方法およびシステム、ならびに、システムを製造するための方法
CN116416264A (zh) 一种凸包的计算方法、装置、设备及介质
CN113936137A (zh) 一种去除图像型文本行检测区域重叠的方法、系统及存储介质
CN116994245A (zh) 基于深度学习的空间转录组分析方法、装置及可读介质
CN114494323A (zh) 一种障碍物检测方法、装置、设备及存储介质
CN111429437A (zh) 面向目标检测的图像无参考清晰度质量检测方法
CN104239874B (zh) 一种器官血管识别方法及装置
CN116205884A (zh) 混凝土坝体裂缝识别方法及装置
US20230082346A1 (en) Image processing methods, electronic devices, and non-transitory computer-readable storage media
CN115359502A (zh) 一种图像处理方法、装置、设备以及存储介质
CN115187744A (zh) 一种基于激光点云的机柜识别方法
JPS60157681A (ja) 画像図形の凹凸検出方法
CN115690090B (zh) 缺陷样本图像生成方法、装置、设备及存储介质
Wang et al. An improved filling algorithm for image with complicated closed edges

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination