具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
在本发明的一个实施例中,如图1所示,一种3D二值化图像的处理方法,包括:步骤S100将待处理的3D图像进行二值化处理,得到对应的3D二值化图像;步骤S200根据所述3D二值化图像,查找到所有的连通域;步骤S300当需要查找一所述连通域的中心点时,根据预设中心点算法和所述连通域,查找到所述连通域的中心点(并标注)。
具体的,图像二值化是指将图像上的像素点的灰度值设置为0(黑)或255(白),也就是将整个图像呈现出明显的黑白效果的过程。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。本实施例中待处理的图像为3D图像,因此,进行转化时,得到的也是3D二值化图像。
在得到3D二值化图像后,会查找到3D二值化图像中的所有连通域,以凸显出目标物体,例如:拍摄的脑部3D的CT图像,得到3D二值化图像后,会查找到所有的连通域,使脑部轮廓、脑内部结构等目标物体在图像上体现出来。
在得到所有的连通域使目标物体凸显后,在使用过程中,若用户想要将一目标物体标注出来,就需要查找到此目标物体对应的连通域的中心点,从而通过将此中心点标注出来,以标注此中心点对应的连通域,使3D二值化图像在使用过程中可视化程度更高、方便用户直观地观察到标注的连通域。
本实施例中,通过将3D图像对应的3D二值化图像上的连通域都查找出来,使目标物体清晰地凸显出来;且可以根据需求将对应的连通域的中心点查找到,使连通域被标注出来,可视化程度更高、方便用户直观地观察到标注的连通域,大大提升了使用的便利性。
在本发明的另一个实施例中,除与上述相同的之外,如图2所示,步骤S200包括:
步骤S210根据所述3D二值化图像,查找到一个第一像素点;
其中,3D二值化图像是由很多不同灰度值的像素点组成,这步可以理解为,找到一个符合预设条件的像素点,预设条件是指:未被标记且灰度值为最大(255)的像素点,将此像素点作为第一像素点。在步骤S210中,是从3D二值化图像中随机选择一个符合预设条件的像素点作为第一像素点,这一步是查找一个连通域的起始步骤。
步骤S220当查找到所述第一像素点时,建立对应的连通域标识,并用所述连通域标识标记所述第一像素点;
其中,查找到第一像素点时,会建立此第一像素点对应的连通域标识,查找到第一像素点是查找一个连通域的起始步骤,考虑到有很多的连通域,为了便于区分,每个连通域对应的连通域标识是不同的。后续在轮循步骤S210时,因查找到的第一像素点不同,后面建立的对应的连通域标识也不同。
例如:第一次执行步骤S210时,第一像素点为像素点A,其对应的连通域标识设置为1;第二次执行步骤S210时,第一像素点为像素点B,其对应的连通域标识设置为2。
步骤S230判断所述第一像素点的六邻域像素点是否存在符合预设条件的像素点,若存在,则执行步骤S240,若不存在,则执行步骤S250;
其中,因本实施例的二值化图像为3D,因此,采用判断第一像素点的六领域像素点的状态,六领域像素点是指第一像素点的前后、左右、上下这六个方向相邻的像素点。
预设条件如前面所说,是指未被标记且灰度值为最大(255)的像素点。
步骤S240用所述连通域标识标记所有符合预设条件的像素点,并将所有符合预设条件的像素点存入预设存储空间;
其中,当第一像素点的六邻域像素点中存在符合预设条件的像素点时,将符合预设条件的像素点用连通域标识标记,意味着符合条件的像素点被纳入了此连通域内。
将所有符合预设条件的像素点存储于预设存储空间是为了便于后续查找到所有相邻的符合预设条件的像素点,从而确认查找到一个连通域。
例如:第一像素点A(A已经被连通域标识标记)的六邻域像素点A1、A2、A3、A4、A5、A6中只有A1、A2、A3符合预设条件,则用连通域标识标记A1、A2、A3,并将A1、A2、A3存入预设存储空间;A4、A5、A6不被标记,也不存入预设存储空间,更不会去考虑他们的六邻域像素点。
步骤S250判断所述预设存储空间是否存在符合预设条件的像素点,若存在,则执行步骤S260,若不存在,则执行步骤S270;
其中,这一步是为了判断与第一像素点相关的符合预设条件的像素点是否还存在,以便确认是否需要更新第一像素点,继续查找(更新的)第一像素点的六邻域像素点,还是说明已经没有相邻的符合预设条件的像素点,即已经可以确认查找到一个连通域了。
步骤S260选择所述预设存储空间中的当前像素点,用所述当前像素点更新所述第一像素点,并将所述当前像素点从所述预设存储空间中删除后,执行步骤S230;其中,所述当前像素点为所述预设存储空间中一个符合预设条件的像素点;
其中,当预设存储空间中存在多个符合预设条件的像素点时,可以随机选取一个符合预设条件的像素点作为当前像素点;也可以根据先存入先选择的原则来选择一个符合预设条件的像素点作为当前像素点,如何选择当前像素点的方式在此不作限制。
当一个符合预设条件的像素点作为当前像素点更新了第一像素点后,会将其从预设存储空间中删除,防止其重复更新第一像素点,提高工作效率。
步骤270将被所述连通域标识标记的所有像素点作为一个连通域。
其中,当循环执行了步骤S230-步骤S260,不再能够查找到符合预设条件的像素点时,则将先前用连通域标识标记的所有像素点纳入一个连通域中,说明完成了一个连通域的查找。
一个连通域的查找过程例子参考如下:
根据所述3D二值化图像(开始时,第一像素点为空,预设存储空间也未存储任何符合预设条件的像素点),随机选择一个符合预设条件(未被标记、且灰度值最大的像素点)的像素点A作为第一像素点,根据第一像素点建立(生成)对应的连通域标识1,并连通域标识1标记第一像素点A;判断第一像素点A的六邻域像素点A1、A2、A3、A4、A5、A6是否存在符合预设条件的像素点,若A1、A2、A3符合预设条件,则用连通域标识1标记A1、A2、A3,并将A1、A2、A3存入预设存储空间;因为预设存储空间中存在符合预设条件的像素点(A1、A2、A3),因此,选择其中的一个A1作为当前像素点更新第一像素点(即第一像素点从A变为A1),并将A1从预设存储空间中删除(即预设存储空间中现在仅存储有A2、A3);再次判断第一像素点A1的六邻域像素点A11、A12、A13、A14、A15、A16是否符合预设条件,若都不符合,则直接选择预设存储空间中剩余的一个像素点A2作为当前像素点来更新第一像素点(即第一像素点从A1变为A2),并将A2从预设存储空间中删除(即预设存储空间中现在仅存储有A3);再次判断第一像素点A2的六邻域像素点A21、A22、A23、A24、A25、A26是否符合预设条件,若仅A26符合,则用连通域标识1标记A26,并将A26存入预设存储空间;并选择一个像素点作为当前像素点……以此类推,直到预设存储空间不再存储有符合预设条件的像素点为止,将所有用连通域标识1标记的像素点A、A1、A2、A3、A26……等像素点归入一个连通域中,完成了查找到一个连通域的过程。
本实施例中,通过随机选择一个第一像素点作为查找连通域的起始步骤,操作简单、方便;且结合3D二值化图的特殊情况,对第一像素点的六邻域像素点进行判断,使查找到的连通域也属于3D,从而使目标物体被清晰地凸显出来,提高了图像的可视化。
优选地,步骤S200还包括:步骤S280轮循步骤S210-步骤S270,直到查找到所述3D二值化图像中的所有连通域。
具体的,步骤S210-步骤S270是查找一个连通域的方法,在查找到一个连通域后,第一像素点的值会被恢复为初始值,便于后续轮循后将新的符合预设条件的点作为第一像素点。
本实施例中,通过轮循上述各步骤,使3D二值化图像中的所有连通域被查找到,查找过程简单、明了,工作效率高。
在本发明的另一个实施例中,除与上述相同的之外,如图3所示,步骤S300包括:
步骤S310当需要查找一所述连通域的中心点时,遍历所述连通域中的所有像素点,分别获取X轴方向上最大的X值和最小的X值、Y轴方向上最大的Y值和最小的Y值,以及,Z轴方向上最大的Z值和最小的Z值;
其中,连通域是由各像素点组成的,各像素点在3D二值化图像中有对应的坐标。当接收到查找某一连通域的中心点指令时,遍历此连通域中各像素点的坐标(x,y,z),从而获取X轴方向上最大的X值和最小的X值、Y轴方向上最大的Y值和最小的Y值,以及,Z轴方向上最大的Z值和最小的Z值。
步骤S320根据所述X轴方向上最大的X值和最小的X值、Y轴方向上最大的Y值和最小的Y值,以及,Z轴方向上最大的Z值和最小的Z值,分别计算X轴方向上的中间X值、Y轴方向上的中间Y值和Z轴方向上的中间Z值;
步骤S330根据所述X轴方向上的中间X值、Y轴方向上的中间Y值和Z轴方向上的中间Z值,得到第一中心点;
其中,根据X轴方向上最大的X值和最小的X值、Y轴方向上最大的Y值和最小的Y值,以及,Z轴方向上最大的Z值和最小的Z值得到第一中心点的方式可以参考下述例子。
例如:某一连通域有7个像素点,其各自的坐标如下表一,X轴方向上最大的X值为9,最小的X值为-5;Y轴方向上最大的Y值为12,最小的Y值为-3;Z轴方向上最大的Z值为11,最小的Z值为1。那么X轴方向上的中间X值为[9+(-5)]÷2=2,Y轴方向上的中间Y值为[12+(-3)]÷2=4.5,Z轴方向上的中间Z值为[11+1]÷2=6;可以设置最小精度为1个坐标,当出现0.5(非整数坐标值)时,根据预设取整条件,进行取整运算,例如:四舍五入,则4.5取整后为5,因此,第一中心点的坐标即为(2,5,6)。需要注意的是,表一的各像素点坐标仅是为了解释清楚如何得到第一中心点而随意选取的坐标,因此,表一中的各像素点可能无法构成一个连通域(连通域中相邻两个像素点的坐标可能仅X值、Y值或Z值相差1),但是在实际使用中,一个连通域的各像素点坐标可以构成一个连通域。
表一
步骤S340判断所述第一中心点是否落在所述连通域内,若是,则执行步骤S350;
步骤S350将所述第一中心点作为所述连通域的中心点,并标注。
具体的,连通域是一片3D区域,当计算得到第一中心点时,可以判断此第一中心点是否落在此3D区域内,若是的话,则说明此第一中心点也是连通域的一部分,因此,可以将此第一中心点作为连通域的中心点。为了让此连通域与其它连通域区别出来,便于让用户更直观地观察到它,可以将第一中心点标注出来。
本实施例中,当需要查找一连通域的中心点时,可以通过X值、Y值和Z值的最大值、最小值计算得到,计算过程方便、快捷,处理效率高。将第一中心点标注,使第一中心点对应的连通域可以在图像上凸显出来,使图像可视化程度更高。
优选地,所述步骤S340还包括:若否,则执行步骤S360;所述步骤S300还包括:步骤S360将预设步长值设为当前直径;步骤S361根据所述第一中心点、所述当前直径和预设平面,在所述预设平面上得到参考圆;步骤S362判断所述参考圆与所述连通域是否存在交点,若是,则执行步骤S363;步骤S363将所述交点作为所述连通域的中心点,并标注。
具体的,当连通域是不规则图形时,通过上述方式算出来的第一中心点有机率不会落在连通域内,此时,就需要对第一中心点纠偏,从而得到连通域的中心点。本实施例通过平面画圆的方式对第一中心点纠偏。
工程师可以根据系统的计算速度、效率来设置预设步长值,若计算速度较慢,预设步长值可以设置的大一点,例如:预设步长值可以为3个像素点的距离;若计算速度较快,预计步长值可以设置的小一点,例如:预设步长值可以为1个像素点的距离。
预设平面是指在哪个平面上画圆,例如:预设平面可以为XY平面、XZ平面或YZ平面,可以根据需求自行设置。
在画参考圆时,以第一中心点为圆心、当前直径为直径在预设平面上得到参考圆。需要注意的是,此参考圆仅用于判断是否与连通域有交点,并不在3D二值化图像上显示出来。
当参考圆与连通域仅有一个交点时,就将此交点作为连通域的中心点;当有多个交点时,随机选择一个交点作为中心点。
本实施例通过平面画圆的方式对连通域的中心点纠偏,使纠偏后的中心点位于连通域上,便于后续的连通域的标注,提高视图的可视化。
优选地,所述步骤S362还包括:若否,则执行步骤S364;步骤S364以所述当前直径为基础,根据所述预设步长值,计算得到参考步长值,用所述参考步长值更新所述当前直径,并执行步骤S361。
具体的,若第一中心点的位置离连通域较远,当预设步长值设置的较小时,一次画圆可能无法得到交点,因此,会用预设步长值累加的方式得到不同的直径进行画圆,直到得到交点。
例如:预设步长值为2个像素点的距离,预设平面为XY平面,第一中心点的坐标为(1,2,3);第一个参考圆的直径为2,若无交点;第二个参考圆的直径为4,若还是没有交点;第三个参考圆的直径为6……直到得到交点为止。
本实施例中解决了一次得到的参考圆与连通域无交点的情况,多种情况的考虑,保证了第一中心点纠偏后必然会得到连通域的中心点,提高了连通域中心点查找的效率。
在本发明的另一个实施例中,一种3D二值化图像的处理方法,如图1、图2、图3所示,包括:
步骤S100将待处理的3D图像进行二值化处理,得到对应的3D二值化图像;
步骤S200根据所述3D二值化图像,查找到所有的连通域;步骤S200包括:
步骤S210根据所述3D二值化图像,查找到一个第一像素点;
步骤S220当查找到所述第一像素点时,建立(或者说,生成)对应的连通域标识,并用所述连通域标识标记所述第一像素点;
步骤S230判断所述第一像素点的六邻域像素点是否存在符合预设条件的像素点,若存在,则执行步骤S240,若不存在,则执行步骤S250;
步骤S240用所述连通域标识标记所有符合预设条件的像素点,并将所有符合预设条件的像素点存入预设存储空间;
步骤S250判断所述预设存储空间是否存在符合预设条件的像素点,若存在,则执行步骤S260,若不存在,则执行步骤S270;
步骤S260选择所述预设存储空间中的当前像素点,用所述当前像素点更新所述第一像素点,并将所述当前像素点从所述预设存储空间中删除后,执行步骤S230;
其中,所述当前像素点为所述预设存储空间中一个符合预设条件的像素点;
步骤270将被所述连通域标识标记的所有像素点作为一个连通域;
步骤S280轮循步骤S210-步骤S270,直到查找到所述3D二值化图像中的所有连通域;
步骤S300当需要查找一所述连通域的中心点时,根据预设中心点算法和所述连通域,查找到所述连通域的中心点;
步骤S300包括:
步骤S310当需要查找一所述连通域的中心点时,遍历所述连通域中的所有像素点,分别获取X轴方向上最大的X值和最小的X值、Y轴方向上最大的Y值和最小的Y值,以及,Z轴方向上最大的Z值和最小的Z值;
步骤S320根据所述X轴方向上最大的X值和最小的X值、Y轴方向上最大的Y值和最小的Y值,以及,Z轴方向上最大的Z值和最小的Z值,分别计算X轴方向上的中间X值、Y轴方向上的中间Y值和Z轴方向上的中间Z值;
步骤S330根据所述X轴方向上的中间X值、Y轴方向上的中间Y值和Z轴方向上的中间Z值,得到第一中心点;
步骤S340判断所述第一中心点是否落在所述连通域内,若是,则执行步骤S350,若否,则执行步骤S360;
步骤S350将所述第一中心点作为所述连通域的中心点;
步骤S360将预设步长值设为当前直径;
步骤S361根据所述第一中心点、所述当前直径和预设平面,在所述预设平面上得到参考圆;
步骤S362判断所述参考圆与所述连通域是否存在交点,若是,则执行步骤S363,若否,则执行步骤S364;
步骤S363将所述交点作为所述连通域的中心点;
步骤S364以所述当前直径为基础,根据所述预设步长值,计算得到参考步长值,用所述参考步长值更新所述当前直径,并执行步骤S361。
具体的,本实施例中可以在3D二值化图像上找到所有的连通域,且可以查找到(并标注)连通域的中心点,使3D二值化图像更清楚、可视化程度更高,大大提升了使用的便利性。
在本发明的另一个实施例中,一种3D二值化图像的处理系统,如图4所示,包括:
处理模块10,用于将待处理的3D图像进行二值化处理,得到对应的3D二值化图像;
查找模块20,与所述处理模块10电连接,所述查找模块用于根据所述3D二值化图像,查找到所有的连通域;以及,当需要查找一所述连通域的中心点时,所述查找模块用于根据预设中心点算法和所述连通域,查找到所述连通域的中心点(并标注)。
具体的,本实施例中待处理的图像为3D图像,因此,进行转化时,得到的也是3D二值化图像。
在得到3D二值化图像后,会查找到3D二值化图像中的所有连通域,以凸显出目标物体,例如:拍摄的脑部3D的CT图像,得到3D二值化图像后,会查找到所有的连通域,使脑部轮廓、脑内部结构等目标物体在图像上体现出来。
在得到所有的连通域使目标物体凸显后,在使用过程中,若用户想要将一目标物体标注出来,就需要查找到此目标物体对应的连通域的中心点,从而通过将此中心点标注出来,以标注此中心点对应的连通域,使3D二值化图像在使用过程中可视化程度更高、方便用户直观地观察到标注的连通域。
本实施例中,通过将3D图像对应的3D二值化图像上的连通域都查找出来,使目标物体凸清晰地显出来;且可以根据需求将对应的连通域的中心点查找到,使连通域被标注出来,可视化程度更高、方便用户直观地观察到标注的连通域,大大提升了使用的便利性。
在本发明的另一个实施例中,除与上述相同的之外,如图5所示,查找模块20,用于根据所述3D二值化图像,查找到一个第一像素点;
3D二值化图像的处理系统还包括:
标记模块30,与所述查找模块20电连接,当查找到所述第一像素点时,所述标记模块用于建立对应的连通域标识,并用所述连通域标识标记所述第一像素点;
判断模块40,与所述标记模块30电连接,所述判断模块用于判断所述第一像素点的六邻域像素点是否存在符合预设条件的像素点;
所述标记模块30,进一步用于当所述第一像素点的六邻域像素点存在符合预设条件的像素点时,用所述连通域标识标记所有符合预设条件的像素点;
存储模块50,与所述判断模块40电连接,当所述第一像素点的六邻域像素点存在符合预设条件的像素点时,所述存储模块将所有符合预设条件的像素点存储;
所述判断模块40,进一步用于判断所述存储模块是否存在符合预设条件的像素点;
所述查找模块20,进一步用于选择所述存储模块中的当前像素点,用所述当前像素点更新所述第一像素点;
其中,所述当前像素点为所述存储模块中一个符合预设条件的像素点;
所述存储模块50,进一步用于将所述当前像素点从删除;
所述查找模块20,进一步用于当所述存储模块不存在符合预设条件的像素点时,所述查找模块将被所述连通域标识标记的所有像素点作为一个连通域。
具体的,上述各模块执行的指令仅仅是查找到一个连通域的流程,当需要查找到3D二值化图像中的所有连通域时,需要重复执行上述指令,直到查找到所有连通域为止。
3D二值化图像是由很多不同灰度值的像素点组成,查找到一个第一像素点可以理解为,找到一个符合预设条件的像素点,预设条件是指:未被标记且灰度值为最大(255)的像素点,将此像素点作为第一像素点。查找模块从3D二值化图像中随机选择一个符合预设条件的像素点作为第一像素点,这一步是查找一个连通域的起始步骤;查找模块用当前像素点更新第一像素点是查找一个连通域的中间步骤。
查找到第一像素点时,会建立此第一像素点对应的连通域标识,查找到第一像素点是查找一个连通域的起始步骤,考虑到有很多的连通域,为了便于区分,每个连通域对应的连通域标识是不同的。后续在轮循时,因查找到的第一像素点不同,后面建立(或者说,生成)的对应的连通域标识也不同。
例如:第一次查找到第一像素点时,第一像素点为像素点A,其对应的连通域标识设置为1;第二次查找到第一像素点时,第一像素点为像素点B,其对应的连通域标识设置为2。
因本实施例的二值化图像为3D,因此,采用判断第一像素点的六领域像素点的状态,六领域像素点是指第一像素点的前后、左右、上下这六个方向相邻的像素点。预设条件如前面所说,是指未被标记且灰度值为最大(255)的像素点。
当第一像素点的六邻域像素点中存在符合预设条件的像素点时,将符合预设条件的像素点用连通域标识标记,意味着符合条件的像素点被纳入了此连通域内。
将所有符合预设条件的像素点存储于预设存储空间是为了便于后续查找到所有相邻的符合预设条件的像素点,从而确认查找到一个连通域。具体的例子参考对应的方法实施例,在此不作赘述。
判断所述存储模块是否存在符合预设条件的像素点是为了判断与第一像素点相关的符合预设条件的像素点是否还存在,以便确认是否需要更新第一像素点,继续查找(更新的)第一像素点的六邻域像素点,还是说明已经没有相邻的符合预设条件的像素点,即已经可以确认查找到一个连通域了。这一步也可以理解为在查找一连通域的过程中是否结束的标志。
当存储模块中存在多个符合预设条件的像素点时,可以随机选取一个符合预设条件的像素点作为当前像素点;也可以根据先存入先选择的原则来选择一个符合预设条件的像素点作为当前像素点,如何选择当前像素点的方式在此不作限制。
当一个符合预设条件的像素点作为当前像素点更新了第一像素点后,会将其从存储模块中删除,防止其重复更新第一像素点,提高工作效率。一个连通域的查找过程的例子请参考对应的方法实施例的例子,在此不作赘述。
本实施例中,通过随机选择一个第一像素点作为查找一连通域的起始步骤,操作简单、方便;且结合3D二值化图的特殊情况,对第一像素点的六邻域像素点进行判断,使查找到的连通域也属于3D,从而使目标物体被清晰地凸显出来,提高了图像的可视化。
在本发明的另一个实施例中,除与上述相同的之外,如图5所示,查找模块20,进一步用于当需要查找一所述连通域的中心点时,遍历所述连通域中的所有像素点,分别获取X轴方向上最大的X值和最小的X值、Y轴方向上最大的Y值和最小的Y值,以及,Z轴方向上最大的Z值和最小的Z值;
所述3D二值化图像的处理系统还包括:
计算模块60,与所述查找模块20电连接,所述计算模块根据所述X轴方向上最大的X值和最小的X值、Y轴方向上最大的Y值和最小的Y值,以及,Z轴方向上最大的Z值和最小的Z值,分别计算X轴方向上的中间X值、Y轴方向上的中间Y值和Z轴方向上的中间Z值;以及,所述计算模块根据所述X轴方向上的中间X值、Y轴方向上的中间Y值和Z轴方向上的中间Z值,得到第一中心点;
判断模块40,与计算模块60电连接和查找模块20电连接,所述判断模块进一步用于判断所述第一中心点是否落在所述连通域内;
查找模块20,进一步用于当所述第一中心点落在所述连通域内时,所述查找模块将所述第一中心点作为所述连通域的中心点,并标注。
具体的,连通域是由各像素点组成的,各像素点在3D二值化图像中有对应的坐标。当接收到查找某一连通域的中心点指令时,遍历此连通域中各像素点的坐标(x,y,z),从而获取X轴方向上最大的X值和最小的X值、Y轴方向上最大的Y值和最小的Y值,以及,Z轴方向上最大的Z值和最小的Z值。
根据X轴方向上最大的X值和最小的X值、Y轴方向上最大的Y值和最小的Y值,以及,Z轴方向上最大的Z值和最小的Z值得到第一中心点的方式可以参考上述对应的方法实施例的例子,在此不作赘述。
连通域是一片3D区域,当计算得到第一中心点时,可以判断此第一中心点是否落在此3D区域内,若是的话,则说明此第一中心点也是连通域的一部分,因此,可以将此第一中心点作为连通域的中心点。为了让此连通域与其它连通域区别出来,便于让用户更直观地观察到它,可以将第一中心点标注出来。
本实施例中,当需要查找一连通域的中心点时,可以通过X值、Y值和Z值的最大值、最小值计算得到,计算过程方便、快捷,处理效率高。将第一中心点标注,使第一中心点对应的连通域可以在图像上凸显出来,使图像可视化程度更高。
在本发明的另一个实施例中,除与上述相同的之外,还包括:
设置模块70,与所述判断模块40和计算模块60电连接,当所述第一中心点不落在所述连通域内时,所述设置模块将预设步长值设为当前直径;
计算模块60,进一步用于根据所述第一中心点、所述当前直径和预设平面,在所述预设平面上得到参考圆;
判断模块40,进一步用于判断所述参考圆与所述连通域是否存在交点;
查找模块20,进一步用于当所述参考圆与所述连通域存在交点时,所述查找模块将所述交点作为所述连通域的中心点,并标注。
具体的,当连通域是不规则图形时,通过上述方式算出来的第一中心点有机率不会落在连通域内,此时,就需要对第一中心点纠偏,从而得到连通域的中心点。本实施例通过平面画圆的方式对第一中心点纠偏。
工程师可以根据系统的计算速度、效率来设置预设步长值,若计算速度较慢,预设步长值可以设置的大一点,例如:预设步长值可以为3个像素点的距离;若计算速度较快,预计步长值可以设置的小一点,例如:预设步长值可以为1个像素点的距离。
预设平面是指在哪个平面上画圆,例如:预设平面可以为XY平面、XZ平面或YZ平面,可以根据需求自行设置。
在画参考圆时,以第一中心点为圆心、当前直径为直径在预设平面上得到参考圆。需要注意的是,此参考圆仅用于判断是否与连通域有交点,并不在3D二值化图像上显示出来。
当参考圆与连通域仅有一个交点时,就将此交点作为连通域的中心点;当有多个交点时,随机选择一个交点作为中心点。
本实施例通过平面画圆的方式对连通域的中心点纠偏,使纠偏后的中心点位于连通域上,便于后续的连通域的标注,提高视图的可视化。
优选地,计算模块60,进一步用于当所述参考圆与所述连通域不存在交点时,所述设置模块以所述当前直径为基础,根据所述预设步长值,计算得到参考步长值;
设置模块70,进一步用于用所述参考步长值更新所述当前直径。
具体的,若第一中心点的位置离连通域较远,当预设步长值设置的较小时,一次画圆可能无法得到交点,因此,会用预设步长值累加的方式得到不同的直径进行画圆,直到得到交点。具体例子可以参考对应的方法实施例中的例子,在此不作赘述。
本实施例中解决了一次得到的参考圆与连通域无交点的情况,多种情况的考虑,保证了第一中心点纠偏后必然会得到连通域的中心点,提高了连通域中心点查找的效率。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。