本发明涉及图像特征处理技术领域,具体地,涉及图像的小黑点提取方法及系统。
背景技术:
现有专利申请cn109933683a(201910042125.3)公开了一种图像特征提取算法,具体包括以下步骤:步骤一、针对当前输入的图像中的图帧,经黑边检测模块得到有效图像区域的宽度和高度;步骤二、将图像重新定位,经图像尺寸归一化模块得到归一后的图像;步骤三、针对归一后的图像,经直方图均衡模块对输入图像中的各区域进行直方图均衡处理;步骤四、通过特征计算模块计算图像局部区域的灰度梯度进而得到图像特征。
技术实现要素:
针对现有技术中的缺陷,本发明的目的是提供一种图像的小黑点提取方法及系统。
根据本发明提供的一种图像的小黑点提取方法,其特征在于,包括:
步骤s1:通过opencv读取原始图像或dcmtk读取原始图像并转换为opencv的cmat图像;
步骤s2:对原始图像进行中值模糊,获得处理后的第一图像;
步骤s3:对处理后的第一图像进行升采样,获得采样后的第二图像,所述升采样倍率可控;
步骤s4:对升采样后的第二图像再进行中值模糊,获得处理后的第三图像;
步骤s5:对处理后的第三图像进行边缘检测;
步骤s6:对处理后的第三图像进行二值化处理,获得处理后的第四图像;
步骤s7:提取第四图像中各区域轮廓,获得提取的轮廓;
步骤s8:轮廓遍历,计算轮廓内外色差、轮廓大小以及面积,提取感兴趣点坐标;
步骤s9:将所有感兴趣点轮廓半径求平均值,将不符合预设条件的的轮廓标记为不感兴趣点;
步骤s10:计算两两点间距离,并不断计算所有点的距离均方差,将均方差和距离值近似的点归类,当且仅当数量最多的一组为目标小黑点。
优选地,所述图像进行边缘检测的方法包括:
高斯模糊+canny算法、对图像进行x和y方向sobel边缘检测。
优选地,所述步骤s8包括:
步骤s801:根据提取的轮廓,计算其轮廓中点数量,点少于预设数量和点多于预设数量的轮廓为不感兴趣的点;
步骤s802:将轮廓拟合成椭圆,计算椭圆长轴和短轴比,将长轴和短轴比控制在预设范围内,在此之外的轮廓记为不感兴趣的点;
步骤s803:计算轮廓面积,面积大于预设值和小于预设值的轮廓为不感兴趣的点;
步骤s804:将轮廓拟合成圆,计算其半径,半径大于预设半径和小于预设半径的轮廓记为不感兴趣的点,此时将圆心和半径保留,并做还原处理;
步骤s805:将当前轮廓与提取完成的轮廓进行圆心距离比、面积大小对比,满足近似误差条件则认为是同一个感兴趣的点,否则认为是两个感兴趣的点,并添加当前轮廓中心点到目标区域;
步骤s806:计算当前轮廓与提取完成的轮廓中心距离:若中心距离在预设范围内,且半径误差小于预设误差半径,面积误差在预设误差范围,中心点误差在预设数量的像素点内,将半径小的轮廓与半径大的轮廓进行交换存储;若距离误差在预设范围内,中心距离误差大于预设误差距离,则表示是两个目标点;若距离大于预设距离,则可视为不感兴趣的点;
步骤s807:计算轮廓圆的最小外接正方形,并遍历这个正方形中所有点计算其像素平均值,若满足预设的误差范围,则为感兴趣的点;否则为不感兴趣的点;
步骤s808:计算轮廓圆的最小外接正方形和距离圆心两倍距离的外接正方形之间的区域,将该区域分成上下左右四个区域,分别计算这四个区域内的平均像素,并对四个区域像素进行平均方差处理,均方差在预设误差范围内则标记该轮廓中心点为感兴趣的点。
优选地,所述还原处理指对升采样导致的每个轮廓按倍率增长进行还原;
所述不感兴趣的点:包括噪声、大于预设距离的目标点。
本发明提供的一种图像的小黑点提取系统,包括:
模块s1:通过opencv读取原始图像或dcmtk读取原始图像并转换为opencv的cmat图像;
模块s2:对原始图像进行中值模糊,获得处理后的第一图像;
模块s3:对处理后的第一图像进行升采样,获得采样后的第二图像,所述升采样倍率可控;
模块s4:对升采样后的第二图像再进行中值模糊,获得处理后的第三图像;
模块s5:对处理后的第三图像进行边缘检测;
模块s6:对处理后的第三图像进行二值化处理,获得处理后的第四图像;
模块s7:提取第四图像中各区域轮廓,获得提取的轮廓;
模块s8:轮廓遍历,计算轮廓内外色差、轮廓大小以及面积,提取感兴趣点坐标;
模块s9:将所有感兴趣点轮廓半径求平均值,将不符合预设条件的的轮廓标记为不感兴趣点;
模块s10:计算两两点间距离,并不断计算所有点的距离均方差,将均方差和距离值近似的点归类,当且仅当数量最多的一组为目标小黑点。
优选地,所述图像进行边缘检测的方法包括:
高斯模糊+canny算法、对图像进行x和y方向sobel边缘检测。
优选地,所述模块s8包括:
模块s801:根据提取的轮廓,计算其轮廓中点数量,点少于预设数量和点多于预设数量的轮廓为不感兴趣的点;
模块s802:将轮廓拟合成椭圆,计算椭圆长轴和短轴比,将长轴和短轴比控制在预设范围内,在此之外的轮廓记为不感兴趣的点;
模块s803:计算轮廓面积,面积大于预设值和小于预设值的轮廓为不感兴趣的点;
模块s804:将轮廓拟合成圆,计算其半径,半径大于预设半径和小于预设半径的轮廓记为不感兴趣的点,此时将圆心和半径保留,并做还原处理;
模块s805:将当前轮廓与提取完成的轮廓进行圆心距离比、面积大小对比,满足近似误差条件则认为是同一个感兴趣的点,否则认为是两个感兴趣的点,并添加当前轮廓中心点到目标区域;
模块s806:计算当前轮廓与提取完成的轮廓中心距离:若中心距离在预设范围内,且半径误差小于预设误差半径,面积误差在预设误差范围,中心点误差在预设数量的像素点内,将半径小的轮廓与半径大的轮廓进行交换存储;若距离误差在预设范围内,中心距离误差大于预设误差距离,则表示是两个目标点;若距离大于预设距离,则可视为不感兴趣的点;
模块s807:计算轮廓圆的最小外接正方形,并遍历这个正方形中所有点计算其像素平均值,若满足预设的误差范围,则为感兴趣的点;否则为不感兴趣的点;
模块s808:计算轮廓圆的最小外接正方形和距离圆心两倍距离的外接正方形之间的区域,将该区域分成上下左右四个区域,分别计算这四个区域内的平均像素,并对四个区域像素进行平均方差处理,均方差在预设误差范围内则标记该轮廓中心点为感兴趣的点。
优选地,所述还原处理指对升采样导致的每个轮廓按倍率增长进行还原;
所述不感兴趣的点:包括噪声、大于预设距离的目标点。
本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述中任一项所述的图像的小黑点提取方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、本发明通过当前算法计算,从而提取精准的小黑点坐标。
2、本发明通过距离、均方差,从而排除照片中与小黑点大小近似的噪声点和边缘区域的大噪点。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种图像的小黑点提取方法,其特征在于,包括:
步骤s1:通过opencv读取原始图像或dcmtk读取原始图像并转换为opencv的cmat图像;
步骤s2:对原始图像进行中值模糊,获得处理后的第一图像;
步骤s3:对处理后的第一图像进行升采样,获得采样后的第二图像,所述升采样倍率可控;
步骤s4:对升采样后的第二图像再进行中值模糊,获得处理后的第三图像;
步骤s5:对处理后的第三图像进行边缘检测;
步骤s6:对处理后的第三图像进行二值化处理,获得处理后的第四图像;
步骤s7:提取第四图像中各区域轮廓,获得提取的轮廓;
步骤s8:轮廓遍历,计算轮廓内外色差、轮廓大小以及面积,提取感兴趣点坐标;
步骤s9:将所有感兴趣点轮廓半径求平均值,将不符合预设条件的的轮廓标记为不感兴趣点;
步骤s10:计算两两点间距离,并不断计算所有点的距离均方差,将均方差和距离值近似的点归类,当且仅当数量最多的一组为目标小黑点。
具体地,所述图像进行边缘检测的方法包括:
高斯模糊+canny算法、对图像进行x和y方向sobel边缘检测。
具体地,所述步骤s8包括:
步骤s801:根据提取的轮廓,计算其轮廓中点数量,点少于预设数量和点多于预设数量的轮廓为不感兴趣的点;
步骤s802:将轮廓拟合成椭圆,计算椭圆长轴和短轴比,将长轴和短轴比控制在预设范围内,在此之外的轮廓记为不感兴趣的点;
步骤s803:计算轮廓面积,面积大于预设值和小于预设值的轮廓为不感兴趣的点;
步骤s804:将轮廓拟合成圆,计算其半径,半径大于预设半径和小于预设半径的轮廓记为不感兴趣的点,此时将圆心和半径保留,并做还原处理;
步骤s805:将当前轮廓与提取完成的轮廓进行圆心距离比、面积大小对比,满足近似误差条件则认为是同一个感兴趣的点,否则认为是两个感兴趣的点,并添加当前轮廓中心点到目标区域;
步骤s806:计算当前轮廓与提取完成的轮廓中心距离:若中心距离在预设范围内,且半径误差小于预设误差半径,面积误差在预设误差范围,中心点误差在预设数量的像素点内,将半径小的轮廓与半径大的轮廓进行交换存储;若距离误差在预设范围内,中心距离误差大于预设误差距离,则表示是两个目标点;若距离大于预设距离,则可视为不感兴趣的点;
步骤s807:计算轮廓圆的最小外接正方形,并遍历这个正方形中所有点计算其像素平均值,若满足预设的误差范围,则为感兴趣的点;否则为不感兴趣的点;
步骤s808:计算轮廓圆的最小外接正方形和距离圆心两倍距离的外接正方形之间的区域,将该区域分成上下左右四个区域,分别计算这四个区域内的平均像素,并对四个区域像素进行平均方差处理,均方差在预设误差范围内则标记该轮廓中心点为感兴趣的点。
具体地,所述还原处理指对升采样导致的每个轮廓按倍率增长进行还原;
所述不感兴趣的点:包括噪声、大于预设距离的目标点。
本发明提供的一种图像的小黑点提取系统,包括:
模块s1:通过opencv读取原始图像或dcmtk读取原始图像并转换为opencv的cmat图像;
模块s2:对原始图像进行中值模糊,获得处理后的第一图像;
模块s3:对处理后的第一图像进行升采样,获得采样后的第二图像,所述升采样倍率可控;
模块s4:对升采样后的第二图像再进行中值模糊,获得处理后的第三图像;
模块s5:对处理后的第三图像进行边缘检测;
模块s6:对处理后的第三图像进行二值化处理,获得处理后的第四图像;
模块s7:提取第四图像中各区域轮廓,获得提取的轮廓;
模块s8:轮廓遍历,计算轮廓内外色差、轮廓大小以及面积,提取感兴趣点坐标;
模块s9:将所有感兴趣点轮廓半径求平均值,将不符合预设条件的的轮廓标记为不感兴趣点;
模块s10:计算两两点间距离,并不断计算所有点的距离均方差,将均方差和距离值近似的点归类,当且仅当数量最多的一组为目标小黑点。
具体地,所述图像进行边缘检测的方法包括:
高斯模糊+canny算法、对图像进行x和y方向sobel边缘检测。
具体地,所述模块s8包括:
模块s801:根据提取的轮廓,计算其轮廓中点数量,点少于预设数量和点多于预设数量的轮廓为不感兴趣的点;
模块s802:将轮廓拟合成椭圆,计算椭圆长轴和短轴比,将长轴和短轴比控制在预设范围内,在此之外的轮廓记为不感兴趣的点;
模块s803:计算轮廓面积,面积大于预设值和小于预设值的轮廓为不感兴趣的点;
模块s804:将轮廓拟合成圆,计算其半径,半径大于预设半径和小于预设半径的轮廓记为不感兴趣的点,此时将圆心和半径保留,并做还原处理;
模块s805:将当前轮廓与提取完成的轮廓进行圆心距离比、面积大小对比,满足近似误差条件则认为是同一个感兴趣的点,否则认为是两个感兴趣的点,并添加当前轮廓中心点到目标区域;
模块s806:计算当前轮廓与提取完成的轮廓中心距离:若中心距离在预设范围内,且半径误差小于预设误差半径,面积误差在预设误差范围,中心点误差在预设数量的像素点内,将半径小的轮廓与半径大的轮廓进行交换存储;若距离误差在预设范围内,中心距离误差大于预设误差距离,则表示是两个目标点;若距离大于预设距离,则可视为不感兴趣的点;
模块s807:计算轮廓圆的最小外接正方形,并遍历这个正方形中所有点计算其像素平均值,若满足预设的误差范围,则为感兴趣的点;否则为不感兴趣的点;
模块s808:计算轮廓圆的最小外接正方形和距离圆心两倍距离的外接正方形之间的区域,将该区域分成上下左右四个区域,分别计算这四个区域内的平均像素,并对四个区域像素进行平均方差处理,均方差在预设误差范围内则标记该轮廓中心点为感兴趣的点。
具体地,所述还原处理指对升采样导致的每个轮廓按倍率增长进行还原;
所述不感兴趣的点:包括噪声、大于预设距离的目标点。
本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述中任一项所述的图像的小黑点提取方法的步骤。
下面通过优选例,对本发明进行更为具体地说明。
优选例1:
通过对原始图像(包含dicom图片)的读取,对原始图像升采样,放大视觉色差区域,提取图像各区域轮廓,拟合成圆。对各轮廓进行内外色差识别,轮廓整体大小、面积判别来,然后以基准参考数据对比后提取出小黑点坐标。
步骤1:通过opencv读取原始图像或dcmtk读取原始图像并转换为opencv的cmat图像;
步骤2:对原始图像进行中值模糊;
步骤3:对图像进行升采样,升采样倍率可控;
步骤4:对升采样后的图像再进行中值模糊;
步骤5:图像进行边缘检测(高斯模糊+canny算法或对图像进行x和y方向sobel,二者通过图像类别进行选择);
步骤6:图像二值化处理;
步骤7:提取图像中各区域轮廓;
步骤8:轮廓遍历,计算轮廓内外色差,轮廓大小,面积提取感兴趣点坐标;
步骤9:将所有感兴趣点轮廓半径求平均值,较大和较小的轮廓标记为不感兴趣点;
步骤10:计算两两点间距离,并不断计算所有点的距离均方差,将均方差和距离值近似的点归类,当且仅当数量最多的一组为目标小黑点。
所述步骤8包括以下步骤:
步骤8.1:已知轮廓,计算其轮廓中点数量,点过少和点过多的轮廓为不感兴趣的点。
步骤8.2:将轮廓你合成椭圆,计算椭圆长宽比,将长宽比控制在一个近似圆的范围内,在此之外的轮廓为不感兴趣的点。
步骤8.3:计算轮廓面积,面积过大和过小的轮廓为不感兴趣的点。
步骤8.4:将轮廓你合成圆,计算其半径,半径过大和过小的轮廓为不感兴趣的点,此时将圆心和半径保留,并做还原处理(一开始升采样,导致每个轮廓按倍率增长)。
步骤8.5:将当前轮廓与提完成(暂时满足要求)的轮廓进行圆心距离比、面积大小对比,满足近似误差条件则认为是同一个感兴趣的点,否则认为是两个感兴趣的点,并添加当前轮廓中心点到目标区域;
步骤8.6:计算当前轮廓与提取完成的轮廓中心距离:若中心距离在预设范围内,且半径误差小于预设误差半径,面积误差在预设误差范围,中心点误差在预设数量的像素点内,将半径小的轮廓与半径大的轮廓进行交换存储;若距离误差在预设范围内,中心距离误差大于预设误差距离,则表示是两个目标点;若距离大于预设距离,则可视为不感兴趣的点(包括噪声、较远的目标点);
步骤8.7:计算轮廓圆的最小外接正方形,并遍历这个正方形中所有点计算其像素平均值,若满足预设的误差范围,则为感兴趣的点;否则为不感兴趣的点;
步骤8.8:计算轮廓圆的最小外接正方形和距离圆心两倍距离的外接正方形之间的区域,将该区域分成上下左右四个区域,分别计算这四个区域内的平均像素,并对四个区域像素进行平均方差处理,均方差在预设误差范围内则标记该轮廓中心点为感兴趣的点。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。