CN111429450B - 角点检测的方法、***、设备及存储介质 - Google Patents
角点检测的方法、***、设备及存储介质 Download PDFInfo
- Publication number
- CN111429450B CN111429450B CN202010281292.6A CN202010281292A CN111429450B CN 111429450 B CN111429450 B CN 111429450B CN 202010281292 A CN202010281292 A CN 202010281292A CN 111429450 B CN111429450 B CN 111429450B
- Authority
- CN
- China
- Prior art keywords
- current pixel
- point
- pixel point
- variance
- vertex
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 61
- 238000004364 calculation method Methods 0.000 claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000004590 computer program Methods 0.000 claims description 9
- 230000009286 beneficial effect Effects 0.000 abstract description 6
- 238000004422 calculation algorithm Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002187 spin decoupling employing ultra-broadband-inversion sequences generated via simulated annealing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20164—Salient point detection; Corner detection
Landscapes
- Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种角点检测的方法、***、设备及存储介质,其中,角点检测的方法包括以下步骤:获取灰度图像的每个像素点;逐点遍历确定每个当前像素点的方向性及方向角;若所述当前像素点没有方向性,则所述当前像素点不是角点;若所述当前像素点有方向性,则确定所述当前像素点对应的所述方向角所在的方向上的邻域点,通过所述当前像素点与所述邻域点之间的高低频特征的差异性判断所述当前像素点是否为角点。本发明提供的一种角点检测的方法、***、设备及存储介质,检测准确率高;并且计算复杂度较低,计算速度快,可实现实时角点检测;能够通过对图像逐点遍历的计算方式实现,有利于工程上FPGA等硬件的实现。
Description
技术领域
本发明涉及图像处理技术领域,特别涉及一种角点检测的方法、***、设备及存储介质。
背景技术
角点是图像中的关键特征点,角点检测是图像处理中一项关键技术。常见的角点检测算法有Kitchen-Rosenfeld(一种算法的名称)角点检测算法、Harris(一种算法的名称)角点检测算法、CFR(一种算法的名称)角点相应函数检测算法、KLT(一种算法的名称)角点检测算法及SUSAN(一种算法的名称)角点检测算法等。其中,Harris算法是比较传统的角点检测算法,最原始的定义是将矩阵M的行列式值与M的迹相减,再将差值同预先给定的阈值进行比较。Shi(人名)和Tomasi(人名)提出了升级的方法,若两个特征值中较小的一个大于最小阈值,则会得到强角点。前述常用的角点检测算法大多计算复杂度较高,例如成熟度相对比较高的Harris角点检测算法,需要用到矩阵求迹及矩阵行列式这种计算复杂度相对较高的运算,不利于工程上的FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)等硬件实现。
另外还有一些计算复杂度相对较低的角点检测算法,例如由Edward Rosten andTomDrummond(人名)在2006年提出了一种简单快速的角点探测算法——FAST(一种算法的名称),该算法检测的角点定义为在像素点的周围邻域内有足够多的像素点与该点处于不同的区域。应用到灰度图像中,即有足够多的像素点的灰度值大于该点的灰度值或者小于该点的灰度值。该算法计算复杂度相对较低,但是FAST算法对角点和正常高频特征的区分度效果欠佳。
发明内容
本发明要解决的技术问题是为了克服现有技术中的角点检测实现方式无法兼顾检测准确率和计算复杂度的缺陷,提供一种能够有效区分图像中的角点和正常高频特征,检测准确率高,并且计算速度快、复杂度较低,易于硬件实现的角点检测的方法、***、设备及存储介质。
本发明是通过下述技术方案来解决上述技术问题:
本发明第一方面提供了一种角点检测的方法,包括以下步骤:
获取灰度图像的每个像素点;
逐点遍历确定每个当前像素点的方向性及方向角;
若所述当前像素点没有方向性,则所述当前像素点不是角点;
若所述当前像素点有方向性,则确定所述当前像素点对应的所述方向角所在的方向上的邻域点,通过所述当前像素点与所述邻域点之间的高低频特征的差异性判断所述当前像素点是否为角点。
较佳地,所述逐点遍历确定每个当前像素点的方向性及方向角的步骤包括以下步骤:
逐点遍历获取每个所述当前像素点;
获取所述当前像素点的M*M邻域;
根据所述M*M邻域确定所述当前像素点的方向性及方向角;
其中,M为大于等于3的奇数。
较佳地,所述根据所述M*M邻域确定所述当前像素点的方向性及方向角的步骤包括以下步骤:
分别计算所述M*M邻域在0°、45°、90°及135°方向的方差,以得到0度方差、45度方差、90度方差及135度方差;
根据所述0度方差、所述45度方差、所述90度方差及所述135度方差确定所述当前像素点的方向性及方向角。
较佳地,所述根据所述0度方差、所述45度方差、所述90度方差及所述135度方差确定所述当前像素点的方向性及方向角的步骤包括以下步骤:
确定所述0度方差、所述45度方差、所述90度方差及所述135度方差中的最小值;所述最小值对应的方差为第一类方差,剩余的三个所述方差为第二类方差;
判断所述第一类方差是否小于第一预设阈值且所述第一类方差与每个所述第二类方差的差值的绝对值是否均大于第二预设阈值,若是则所述当前像素点具有方向性且所述最小值对应的角度为所述方向角。
较佳地,所述确定所述当前像素点对应的所述方向角所在的方向上的邻域点,通过所述当前像素点与所述邻域点之间的高低频特征的差异性判断所述当前像素点是否为角点的步骤包括以下步骤:
获取所述当前像素点在所述M*M邻域中对应的所述方向角所在方向的两个顶点,分别为第一顶点和第二顶点;
获取所述第一顶点的N*N邻域及所述第二顶点的N*N邻域;N为大于等于3的奇数;
分别计算所述第一顶点、所述当前像素点、所述第二顶点对应的N*N邻域的高低频特征值,以得到第一顶点高低频特征值、当前像素点高低频特征值及第二顶点高低频特征值;
判断所述当前像素点高低频特征值与所述第一顶点高低频特征值的差值的绝对值以及所述当前像素点高低频特征值与所述第二顶点高低频特征值的差值的绝对值是否均大于预设的角点阈值,若是则所述当前像素点为角点,若否则所述当前像素点不是角点。
较佳地,所述分别计算所述第一顶点、所述当前像素点、所述第二顶点对应的N*N邻域的高低频特征值的步骤包括以下步骤:
分别使用区分高低频的算子计算所述第一顶点、所述当前像素点、所述第二顶点对应的N*N邻域的高低频特征值;
所述区分高低频的算子为sobel(一种算子名称)算子、roberts(一种算子名称)算子、laplacian(一种算子名称)算子、prewitt(一种算子名称)算子、canny(一种算子名称)算子、方差中的任意一种。
本发明第二方面提供了一种角点检测的***,包括获取模块、方向确定模块和角点确定模块;
所述获取模块用于获取灰度图像的每个像素点;
所述方向确定模块用于逐点遍历确定每个当前像素点的方向性及方向角;
所述角点确定模块包括第一角点确定子模块和第二角点确定子模块;
所述第一角点确定子模块用于在所述当前像素点没有方向性时确定所述当前像素点不是角点;
所述第二角点确定子模块用于在所述当前像素点有方向性时确定所述当前像素点对应的所述方向角所在的方向上的邻域点,通过所述当前像素点与所述邻域点之间的高低频特征的差异性判断所述当前像素点是否为角点。
较佳地,所述方向确定模块包括:
第一获取子模块,用于逐点遍历获取每个所述当前像素点;
第二获取子模块,用于获取所述当前像素点的M*M邻域;
判断子模块,用于根据所述M*M邻域确定所述当前像素点的方向性及方向角;
其中,M为大于等于3的奇数。
较佳地,所述判断子模块包括:
方差计算单元,用于分别计算所述M*M邻域在0°、45°、90°及135°方向的方差,以得到0度方差、45度方差、90度方差及135度方差;
方向确定单元,用于根据所述0度方差、所述45度方差、所述90度方差及所述135度方差确定所述当前像素点的方向性及方向角。
较佳地,所述方向确定单元包括:
最小值确定子单元,用于确定所述0度方差、所述45度方差、所述90度方差及所述135度方差中的最小值;
所述最小值对应的方差为第一类方差,剩余的三个所述方差为第二类方差;
判断子单元,用于判断所述第一类方差是否小于第一预设阈值且所述第一类方差与每个所述第二类方差的差值的绝对值是否均大于第二预设阈值,若是则所述当前像素点具有方向性且所述最小值对应的角度为所述方向角。
较佳地,所述第二角点确定子模块包括:
顶点获取单元,用于获取所述当前像素点在所述M*M邻域中对应的所述方向角所在方向的两个顶点,分别为第一顶点和第二顶点;获取所述第一顶点的N*N邻域及所述第二顶点的N*N邻域;N为大于等于3的奇数;
高低频特征计算单元,用于分别计算所述第一顶点、所述当前像素点、所述第二顶点对应的N*N邻域的高低频特征值,以得到第一顶点高低频特征值、当前像素点高低频特征值及第二顶点高低频特征值;
判断单元,用于判断所述当前像素点高低频特征值与所述第一顶点高低频特征值的差值的绝对值以及所述当前像素点高低频特征值与所述第二顶点高低频特征值的差值的绝对值是否均大于预设的角点阈值,若是则所述当前像素点为角点,若否则所述当前像素点不是角点。
较佳地,所述高低频特征计算单元用于分别使用区分高低频的算子计算所述第一顶点、所述当前像素点、所述第二顶点对应的N*N邻域的高低频特征值;
所述区分高低频的算子为sobel算子、roberts算子、laplacian算子、prewitt算子、canny算子、方差中的任意一种。
本发明第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的角点检测的方法。
本发明第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的角点检测的方法的步骤。
本发明的积极进步效果在于:与现有技术相比,本发明提供的角点检测的方法、***、设备及存储介质,能够有效区分图像中的角点和正常高频特征,检测准确率高;并且计算复杂度较低,计算速度快,可实现实时角点检测;能够通过对图像逐点遍历的计算方式实现,有利于工程上FPGA等硬件的实现。
附图说明
图1为本发明实施例1的角点检测的方法的流程图。
图2为本发明实施例2的角点检测的方法中步骤S2的流程图。
图3为本发明实施例2的角点检测的方法中步骤S23的流程图。
图4为0度方向示意图。
图5为90度方向示意图。
图6为45度方向示意图。
图7为135度方向示意图。
图8为本发明实施例3的角点检测的方法中步骤S4的流程图。
图9为45度方向角时当前像素点、第一顶点和第二顶点的位置示意图。
图10为135度方向角时当前像素点、第一顶点和第二顶点的位置示意图。
图11为本发明实施例4的角点检测的***的模块示意图。
图12为本发明实施例5的角点检测的***的确定模块的结构示意图。
图13为本发明实施例5的角点检测的***的第二角点确定子模块的结构示意图。
图14为本发明实施例6的电子设备的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
如图1所示,本实施例提供了一种角点检测的方法,该方法包括以下步骤:
步骤S1、获取灰度图像的每个像素点。
本实施例输入图像为灰度图像,如果是RGB(红绿蓝色彩模式)图像,需要先将其转换成亮度图像,也就是转换灰度图像后再进一步处理。步骤S1中获取的是灰度图像的所有的像素点的像素值。
步骤S2、逐点遍历确定每个当前像素点的方向性及方向角。
步骤S3、若当前像素点没有方向性,则当前像素点不是角点,流程结束;若当前像素点有方向性,则继续执行步骤S4。
步骤S4、确定当前像素点对应的方向角所在的方向上的邻域点,通过当前像素点与邻域点之间的高低频特征的差异性判断当前像素点是否为角点。其中,高低频特征是指能够区分图像中高频信息和低频信息的特征。本实施例中高低频特征为梯度。
本实施例中采用先识别出当前像素点的方向性,若有方向性同时确认接近的方向角,然后再通过确定的方向上的邻域点和当前像素点的高低频特征如梯度的差异性来判断当前像素点是否为角点。具体为,当梯度的差异性较大时则为角点,若差异性较小则不是角点。
本实施例可以通过现有的识别像素点的方向性的方式确定当前像素点的方向,然后结合高低频特征如梯度计算的方式进一步判断当前像素点是否为角点,计算复杂度较低,计算速度快,可实现实时角点检测。本实施例通过对图像逐点遍历的计算方式实现全部像素点的角点检测,有利于工程上FPGA等硬件的实现。本实施例能够有效区分图像中的角点和正常高频特征,检测准确率高。
实施例2
本实施例为在实施例1的基础上的进一步改进的实施例,如图2所示,步骤S2具体包括以下及步骤:
步骤S21、逐点遍历获取每个当前像素点。
本实施例中,每个遍历到的当前像素点都要执行确定每个当前像素点的方向性及方向角的步骤,并采用本实施例的方法进一步判断是否是角点。
步骤S22、获取当前像素点的M*M邻域。
其中,M为大于等于3的奇数,本实施例中M取5。
步骤S23、根据M*M邻域确定当前像素点的方向性及方向角。
如图3所示,本实施例中,步骤S23具体包括以下步骤:
步骤S231、分别计算M*M邻域在0°、45°、90°及135°方向的方差,以得到0度方差、45度方差、90度方差及135度方差。
步骤S232、确定0度方差、45度方差、90度方差及135度方差中的最小值。最小值对应的方差为第一类方差,剩余的三个方差为第二类方差。
步骤S233、判断第一类方差是否小于第一预设阈值且第一类方差与每个第二类方差的差值的绝对值是否均大于第二预设阈值,若是则当前像素点具有方向性且最小值对应的角度为方向角。其中,第一预设阈值和第二预设阈值可以根据需要设置和调节。
本实施例中,根据每个当前像素点对应的5*5邻域判断当前像素点是否具有方向性。如果当前像素点具有方向性,进一步判断其方向接近于图4~7所示的0°,90°,45°还是135°四个方向示意图中的哪一个方向。方向性判断以及方向角的计算方法具体说明如下:
将当前像素点对应的5*5邻域存入数组in_data_0[i][j],分别计算0°,45°,90°以及135°方向的方差,其中i和j的取值均为1~5的整数。
0度方差var[1]计算方式如下:
其中,mean[1]表示0度方向当前像素点的5*5邻域的五个像素点的灰度均值。
45度方差var[2]计算方式如下:
其中,mean[2]表示45度方向当前像素点的5*5邻域的五个像素点的灰度均值。
90度方差var[3]计算方式如下:
其中,mean[3]表示90度方向当前像素点的5*5邻域的五个像素点的灰度均值。
135度方差var[4]计算方式如下:
其中,mean[4]表示135度方向当前像素点的5*5邻域的五个像素点的灰度均值。
从上述4个方向方差中搜索最小值,记录方差最小值对应的方向min_var_index。设置两个阈值,分别为第一预设阈值T1和第二预设阈值T2,如果var[min_var_index]<T1,且除了min_var_index外,其余方向的方差值与var[min_var_index]之差的绝对值均大于T2,则当前像素点具有方向性,方向角即为min_var_index对应的角度。
现有技术中确定当前像素点的方向性及方向角的方式有很多种,本实施例提供了一种通过计算当前像素点对应的M*M邻域与0°,90°,45°及135°四个方向的像素值方差的形式确定当前像素点的方向性及方向角,仅通过数组进行基本的加减乘除运算即可实现,计算复杂度较低,计算速度快。
实施例3
本实施例为在实施2的基础上的进一步改进的实施例,如图8所示,步骤S4具体包括以下步骤:
步骤S41、获取当前像素点在M*M邻域中对应的方向角所在方向的两个顶点,分别为第一顶点和第二顶点;
步骤S42、分别使用区分高低频的算子计算第一顶点、当前像素点、第二顶点对应的N*N邻域的高低频特征值,以得到第一顶点高低频特征值、当前像素点高低频特征值及第二顶点高低频特征值。其中,N为大于等于3的奇数。
步骤S43、判断当前像素点高低频特征值与第一顶点高低频特征值的差值的绝对值以及当前像素点高低频特征值与第二顶点高低频特征值的差值的绝对值是否均大于预设的角点阈值,若是则当前像素点为角点,若否则当前像素点不是角点。
其中,区分高低频的算子为sobel算子、roberts算子、laplacian算子、prewitt算子、canny算子以及方差中的任意一种。
本实施例中区分高低频的算子采用sobel算子,计算出的高低频特征值为一阶梯度值。具体说明如下:
分别计算当前像素点所处方向上3个点的梯度值,这3个点分别为当前像素点,以及在5*5邻域中对应的方向角所在方向的两个顶点,分别为第一顶点和第二顶点。例如当前像素点的方向角为45度,则如图9所示的当前像素点C的5*5邻域中的点A和点B,分别为第一顶点和第二顶点。或者当前像素点的方向角为135度,则如图10所示的当前像素点C’的5*5邻域中的点A’和点B’,分别为第一顶点和第二顶点。在计算当前像素点、第一顶点和第二顶点这三个点梯度时候会用到每个点在原始图像上N*N邻域的点。本实施例中N选择3。这里的梯度计算可以选用不同的梯度算子。本实施例中以一阶梯度为例,选用sobel算子,某个像素点的梯度值G为:
其中,
A为某个像素点的3*3邻域的像素值。最终,共计算得到3个梯度值gradient[0],gradient[1],gradient[2],其中,gradient[1]为当前像素点的梯度值,gradient[0]和gradient[2]分别为两个顶点对应的梯度值。
预先设定一个角点阈值thr0,假如abs(gradient[1]-gradient[0])>thr0并且abs(gradient[1]-gradient[2])>thr0,则当前像素点为角点;否则,当前像素点不是角点,其中abs表示绝对值,角点阈值thr0为经验值,可以根据实际需要设置与调整,在此不做限定。
本实施例提供的角点检测的方法,通过采用能够区分高低频的算子计算当前像素点所处方向上三个点的梯度值,根据三个梯度值在梯度上的差异性判断当前像素点是否为角点。
本实施例采用梯度计算的方式判断当前像素点是否为角点,计算复杂度较低,计算速度快,能够满足角点实时检测的要求。本实施例通过对图像逐点遍历的计算方式实现全部像素点的角点检测,有利于工程上FPGA等硬件的实现。本实施例能够有效区分图像中的角点和正常高频特征,检测准确率高。
实施例4
如图11所示,本实施例提供了一种角点检测的***,该***包括获取模块1、方向确定模块2和角点确定模块3。获取模块1用于获取灰度图像的每个像素点。方向确定模块2用于逐点遍历确定每个当前像素点的方向性及方向角。角点确定模块3包括第一角点确定子模块31和第二角点确定子模块32。第一角点确定子模块31用于在当前像素点没有方向性时确定当前像素点不是角点。第二角点确定子模块32用于在当前像素点有方向性时确定当前像素点对应的方向角所在的方向上的邻域点,通过当前像素点与邻域点之间的高低频特征的差异性判断当前像素点是否为角点。其中,高低频特征是指能够区分图像中高频信息和低频信息的特征。本实施例中高低频特征为梯度。
本实施例中采用先识别出当前像素点的方向性,若有方向性同时确认接近的方向角,然后再通过确定的方向上的邻域点和当前像素点的高低频特征如梯度的差异性来判断当前像素点是否为角点。具体为,当梯度的差异性较大时则为角点,若差异性较小时则不是角点。
本实施例可以通过现有的识别像素点的方向性的方式确定当前像素点的方向,然后结合梯度计算的方式进一步判断当前像素点是否为角点,计算复杂度较低,计算速度快,可实现实时角点检测。本实施例通过对图像逐点遍历的计算方式实现全部像素点的角点检测,有利于工程上FPGA等硬件的实现。本实施例能够有效区分图像中的角点和正常高频特征,检测准确率高。
实施例5
本实施例为在实施例4的基础上的进一步改进的实施例,如图12所示,方向确定模块2包括:
第一获取子模块21,用于逐点遍历获取每个当前像素点。
第二获取子模块22,用于获取当前像素点的M*M邻域。
判断子模块23,用于根据M*M邻域确定当前像素点的方向性及方向角。
其中,M为大于等于3的奇数。
其中,判断子模块23包括:
方差计算单元231,用于分别计算M*M邻域在0°、45°、90°及135°方向的方差,以得到0度方差、45度方差、90度方差及135度方差。
方向确定单元232,用于根据0度方差、45度方差、90度方差及135度方差确定当前像素点的方向性及方向角。
具体地,方向确定单元232包括:
最小值确定子单元2321,用于确定0度方差、45度方差、90度方差及135度方差中的最小值。
最小值对应的方差为第一类方差,剩余的三个方差为第二类方差。
判断子单元2322,用于判断第一类方差是否小于第一预设阈值且第一类方差与每个第二类方差的差值的绝对值是否均大于第二预设阈值,若是则当前像素点具有方向性且最小值对应的角度为方向角。
如图13所示,本实施例中,第二角点确定子模块32包括:
顶点获取单元321,用于获取当前像素点在M*M邻域中对应的方向角所在方向的两个顶点,分别为第一顶点和第二顶点。
高低频特征计算单元322,用于分别使用区分高低频的算子计算第一顶点、当前像素点、第二顶点对应的N*N邻域的高低频特征值,以得到第一顶点高低频特征值、当前像素点高低频特征值及第二顶点高低频特征值。
判断单元323,用于判断当前像素点高低频特征值与第一顶点高频特征值的差值的绝对值以及当前像素点高频特征值与第二顶点高频特征值的差值的绝对值是否均大于预设的角点阈值,若是则当前像素点为角点,若否则当前像素点不是角点。
其中,区分高低频的算子为sobel算子、roberts算子、laplacian算子、prewitt算子、canny算子、方差中的任意一种。
本实施例中,N取3,M取5。根据每个当前像素点对应的5*5邻域判断当前像素点是否具有方向性。
现有技术中确定当前像素点的方向性及方向角的方式有很多种,本实施例提供了一种通过计算当前像素点对应的M*M邻域与0°,90°,45°及135°四个方向的像素值方差的形式确定当前像素点的方向性及方向角,仅通过数组进行基本的加减乘除运算即可实现,计算复杂度较低,计算速度快。
本实施例中区分高低频的算子采用sobel算子,计算出的高低频特征值为一阶梯度值。本实施例采用梯度计算的方式判断当前像素点是否为角点,计算复杂度较低,计算速度快,能够满足角点实时检测的要求。本实施例通过对图像逐点遍历的计算方式实现全部像素点的角点检测,有利于工程上FPGA等硬件的实现。本实施例能够有效区分图像中的角点和正常高频特征,检测准确率高。
实施例6
图14为本发明实施例6提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现实施例1-3中任一项的角点检测的方法。图14显示的电子设备60仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图14所示,电子设备60可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备60的组件可以包括但不限于:上述至少一个处理器61、上述至少一个存储器62、连接不同***组件(包括存储器62和处理器61)的总线63。
总线63包括数据总线、地址总线和控制总线。
存储器62可以包括易失性存储器,例如随机存取存储器(RAM)621和/或高速缓存存储器622,还可以进一步包括只读存储器(ROM)623。
存储器62还可以包括具有一组(至少一个)程序模块624的程序/实用工具625,这样的程序模块624包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器61通过运行存储在存储器62中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1-3中任一项的角点检测的方法。
电子设备60也可以与一个或多个外部设备64(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口65进行。并且,模型生成的设备60还可以通过网络适配器66与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器66通过总线63与模型生成的设备60的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备60使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例7
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1-3中任一项的角点检测的方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1-3中任一项的角点检测的方法的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本邻域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本邻域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (14)
1.一种角点检测的方法,其特征在于,包括以下步骤:
获取灰度图像的每个像素点;
逐点遍历确定每个当前像素点的方向性及方向角;
若所述当前像素点没有方向性,则所述当前像素点不是角点;
若所述当前像素点有方向性,则确定所述当前像素点对应的所述方向角所在的方向上的邻域点,通过所述当前像素点与所述邻域点之间的高低频特征的差异性判断所述当前像素点是否为角点。
2.如权利要求1所述的角点检测的方法,其特征在于,所述逐点遍历确定每个当前像素点的方向性及方向角的步骤包括以下步骤:
逐点遍历获取每个所述当前像素点;
获取所述当前像素点的M*M邻域;
根据所述M*M邻域确定所述当前像素点的方向性及方向角;
其中,M为大于等于3的奇数。
3.如权利要求2所述的角点检测的方法,其特征在于,所述根据所述M*M邻域确定所述当前像素点的方向性及方向角的步骤包括以下步骤:
分别计算所述M*M邻域在0°、45°、90°及135°方向的方差,以得到0度方差、45度方差、90度方差及135度方差;
根据所述0度方差、所述45度方差、所述90度方差及所述135度方差确定所述当前像素点的方向性及方向角。
4.如权利要求3所述的角点检测的方法,其特征在于,所述根据所述0度方差、所述45度方差、所述90度方差及所述135度方差确定所述当前像素点的方向性及方向角的步骤包括以下步骤:
确定所述0度方差、所述45度方差、所述90度方差及所述135度方差中的最小值;所述最小值对应的方差为第一类方差,剩余的三个所述方差为第二类方差;
判断所述第一类方差是否小于第一预设阈值且所述第一类方差与每个所述第二类方差的差值的绝对值是否均大于第二预设阈值,若是则所述当前像素点具有方向性且所述最小值对应的角度为所述方向角。
5.如权利要求2所述的角点检测的方法,其特征在于,所述确定所述当前像素点对应的所述方向角所在的方向上的邻域点,通过所述当前像素点与所述邻域点之间的高低频特征的差异性判断所述当前像素点是否为角点的步骤包括以下步骤:
获取所述当前像素点在所述M*M邻域中对应的所述方向角所在方向的两个顶点,分别为第一顶点和第二顶点;
获取所述第一顶点的N*N邻域及所述第二顶点的N*N邻域;N为大于等于3的奇数;
分别计算所述第一顶点、所述当前像素点、所述第二顶点对应的N*N邻域的高低频特征值,以得到第一顶点高低频特征值、当前像素点高低频特征值及第二顶点高低频特征值;
判断所述当前像素点高低频特征值与所述第一顶点高低频特征值的差值的绝对值以及所述当前像素点高低频特征值与所述第二顶点高低频特征值的差值的绝对值是否均大于预设的角点阈值,若是则所述当前像素点为角点,若否则所述当前像素点不是角点。
6.如权利要求5所述的角点检测的方法,其特征在于,所述分别计算所述第一顶点、所述当前像素点、所述第二顶点对应的N*N邻域的高低频特征值的步骤包括以下步骤:
分别使用区分高低频的算子计算所述第一顶点、所述当前像素点、所述第二顶点对应的N*N邻域的高低频特征值;
所述区分高低频的算子为sobel算子、roberts算子、laplacian算子、prewitt算子、canny算子、方差中的任意一种。
7.一种角点检测的***,其特征在于,包括获取模块、方向确定模块和角点确定模块;
所述获取模块用于获取灰度图像的每个像素点;
所述方向确定模块用于逐点遍历确定每个当前像素点的方向性及方向角;
所述角点确定模块包括第一角点确定子模块和第二角点确定子模块;
所述第一角点确定子模块用于在所述当前像素点没有方向性时确定所述当前像素点不是角点;
所述第二角点确定子模块用于在所述当前像素点有方向性时确定所述当前像素点对应的所述方向角所在的方向上的邻域点,通过所述当前像素点与所述邻域点之间的高低频特征的差异性判断所述当前像素点是否为角点。
8.如权利要求7所述的角点检测的***,其特征在于,所述方向确定模块包括:
第一获取子模块,用于逐点遍历获取每个所述当前像素点;
第二获取子模块,用于获取所述当前像素点的M*M邻域;
判断子模块,用于根据所述M*M邻域确定所述当前像素点的方向性及方向角;
其中,M为大于等于3的奇数。
9.如权利要求8所述的角点检测的***,其特征在于,所述判断子模块包括:
方差计算单元,用于分别计算所述M*M邻域在0°、45°、90°及135°方向的方差,以得到0度方差、45度方差、90度方差及135度方差;
方向确定单元,用于根据所述0度方差、所述45度方差、所述90度方差及所述135度方差确定所述当前像素点的方向性及方向角。
10.如权利要求9所述的角点检测的***,其特征在于,所述方向确定单元包括:
最小值确定子单元,用于确定所述0度方差、所述45度方差、所述90度方差及所述135度方差中的最小值;
所述最小值对应的方差为第一类方差,剩余的三个所述方差为第二类方差;
判断子单元,用于判断所述第一类方差是否小于第一预设阈值且所述第一类方差与每个所述第二类方差的差值的绝对值是否均大于第二预设阈值,若是则所述当前像素点具有方向性且所述最小值对应的角度为所述方向角。
11.如权利要求8所述的角点检测的***,其特征在于,所述第二角点确定子模块包括:
顶点获取单元,用于获取所述当前像素点在所述M*M邻域中对应的所述方向角所在方向的两个顶点,分别为第一顶点和第二顶点;获取所述第一顶点的N*N邻域及所述第二顶点的N*N邻域;N为大于等于3的奇数;
高低频特征计算单元,用于分别计算所述第一顶点、所述当前像素点、所述第二顶点对应的N*N邻域的高低频特征值,以得到第一顶点高低频特征值、当前像素点高低频特征值及第二顶点高低频特征值;
判断单元,用于判断所述当前像素点高低频特征值与所述第一顶点高低频特征值的差值的绝对值以及所述当前像素点高低频特征值与所述第二顶点高低频特征值的差值的绝对值是否均大于预设的角点阈值,若是则所述当前像素点为角点,若否则所述当前像素点不是角点。
12.如权利要求11所述的角点检测的***,其特征在于,所述高低频特征计算单元用于分别使用区分高低频的算子计算所述第一顶点、所述当前像素点、所述第二顶点对应的N*N邻域的高低频特征值;
所述区分高低频的算子为sobel算子、roberts算子、laplacian算子、prewitt算子、canny算子、方差中的任意一种。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的角点检测的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的角点检测的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010281292.6A CN111429450B (zh) | 2020-04-10 | 2020-04-10 | 角点检测的方法、***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010281292.6A CN111429450B (zh) | 2020-04-10 | 2020-04-10 | 角点检测的方法、***、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111429450A CN111429450A (zh) | 2020-07-17 |
CN111429450B true CN111429450B (zh) | 2022-08-16 |
Family
ID=71556181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010281292.6A Active CN111429450B (zh) | 2020-04-10 | 2020-04-10 | 角点检测的方法、***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111429450B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114387271B (zh) * | 2022-03-23 | 2022-06-10 | 武汉铂雅科技有限公司 | 基于角点检测的空调塑料接水盘网格缺胶检测方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341803A (zh) * | 2017-07-25 | 2017-11-10 | 电子科技大学 | 一种基于角点检测的数字图像物体微小移动监测算法 |
CN108492306A (zh) * | 2018-03-07 | 2018-09-04 | 鞍钢集团矿业有限公司 | 一种基于图像轮廓的x型角点提取方法 |
CN108960115A (zh) * | 2018-06-27 | 2018-12-07 | 电子科技大学 | 基于角点的多方向文本检测方法 |
CN110766028A (zh) * | 2019-10-23 | 2020-02-07 | 紫光展讯通信(惠州)有限公司 | 像素类型确定方法及装置 |
-
2020
- 2020-04-10 CN CN202010281292.6A patent/CN111429450B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341803A (zh) * | 2017-07-25 | 2017-11-10 | 电子科技大学 | 一种基于角点检测的数字图像物体微小移动监测算法 |
CN108492306A (zh) * | 2018-03-07 | 2018-09-04 | 鞍钢集团矿业有限公司 | 一种基于图像轮廓的x型角点提取方法 |
CN108960115A (zh) * | 2018-06-27 | 2018-12-07 | 电子科技大学 | 基于角点的多方向文本检测方法 |
CN110766028A (zh) * | 2019-10-23 | 2020-02-07 | 紫光展讯通信(惠州)有限公司 | 像素类型确定方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于各向异性高斯核的图像边缘和角点检测;章为川;《博士电子期刊》;20140115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111429450A (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Copy-move forgery detection based on hybrid features | |
CN110223330B (zh) | 一种可见光和红外图像的配准方法及*** | |
JP2020119550A (ja) | 拡張現実、仮想現実、ロボティクスに適したグラフィカルな基準マーカ識別 | |
WO2020082731A1 (zh) | 电子装置、证件识别方法及存储介质 | |
CN111368717B (zh) | 视线确定方法、装置、电子设备和计算机可读存储介质 | |
CN110705583A (zh) | 细胞检测模型训练方法、装置、计算机设备及存储介质 | |
CN110222703B (zh) | 图像轮廓识别方法、装置、设备和介质 | |
JP2015225665A (ja) | 画像ノイズ除去方法及び画像ノイズ除去装置 | |
CN110415237B (zh) | 皮肤瑕疵检测方法、检测装置、终端设备及可读存储介质 | |
CN111311482B (zh) | 背景虚化方法、装置、终端设备及存储介质 | |
CN107895377B (zh) | 一种前景目标提取方法、装置、设备及存储介质 | |
CN111539238B (zh) | 二维码图像修复方法、装置、计算机设备和存储介质 | |
CN112116542B (zh) | 图像对比度增强方法、装置、电子设备和存储介质 | |
CN109300139B (zh) | 车道线检测方法和装置 | |
CN112150371A (zh) | 图像降噪方法、装置、设备及存储介质 | |
CN111383178A (zh) | 一种图像增强方法、装置及终端设备 | |
CN112651953A (zh) | 图片相似度计算方法、装置、计算机设备及存储介质 | |
CN111429450B (zh) | 角点检测的方法、***、设备及存储介质 | |
CN113178013B (zh) | 三角网格滤波方法、装置、电子设备和存储介质 | |
CN111275622B (zh) | 图像拼接方法、装置及终端设备 | |
CN106778822B (zh) | 基于漏斗变换的图像直线检测方法 | |
CN113810654A (zh) | 图像视频的上传方法、装置、存储介质以及电子设备 | |
CN111311610A (zh) | 图像分割的方法及终端设备 | |
CN116468632A (zh) | 一种基于自适应特征保持的网格去噪方法及装置 | |
CN115937839A (zh) | 一种大角度车牌图像识别方法、计算设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |