掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及图像处理的技术领域,具体涉及一种基于卷积算法的图像处理方法及芯片。

背景技术

膨胀算法是多种图像形态学算法中的基础的一种算法,膨胀算法是在图像上将与待处理的区域接触的所有背景像素点合并到该待处理区域中,使待处理区域的边界向外部扩张。因此,膨胀算法的主要用途有:消除噪声、分割出独立的图像像素点、在图像中连接相邻的像素点、寻找图像中明显的极大值或极小值区、求出图像的梯度等。

本领域技术人员容易理解的是,在膨胀和腐蚀操作的最基本组成部分设计出一个结构元素,用于测试输出图像,通常要比待处理的图像小还很多。其中,二维平面的结构元素由矩阵组成,结构元素的原点指定了图像中需要处理的像素范围。

在结构元素覆盖的图像区域内,可能会以一个灰度值为A的像素点(x,y)为搜索中心,将搜索中心的邻域内的任意像素点的灰度值都设置为B,此时,将灰度值设置为B的常规方式是逐行逐列将结构元素覆盖的图像区域内所有像素点的灰度值都设置为B,或结构元素与其覆盖的二值图像(待处理的图像转换而来的)对应的区域进行特定的逻辑运算以将灰度值为A的像素点(x,y)的邻域上的像素点的灰度值都设置为B,往往会使灰度值为B的像素点相对扩大一圈。但是,前述算法应用于遍历完整幅图像时所产生的时间复杂度会呈指数增长,从而在较大图像上进行膨胀计算时,所花费的时间较长,无法有效应用于对实时性和可变性要求较高的图像处理领域。

发明内容

为了减少图像膨胀计算及相关联的图像处理算法所耗费的时间复杂度,本发明公开一种基于卷积算法的图像处理方法及芯片,提高图像处理的实时性。具体的技术方案如下:

一种基于卷积算法的图像处理方法,包括:步骤A、先后利用快速傅里叶变换及快速傅里叶逆变换,来控制图像模板与待处理图像以在对应频域内相乘的形式获得对应空间域内的卷积结果元素;步骤B、若存在一个卷积结果元素满足预设灰度值条件,则将该卷积结果元素在待处理图像内对应的像素点的灰度值设置为预设目标灰度值。

进一步地,所述步骤B具体包括:若检测到所述卷积结果元素的数值是大于0,则将该卷积结果元素对应的图像模板的中心在所述待处理图像内覆盖的像素点的灰度值设置为所述预设目标灰度值。

进一步地,在所述步骤B中,包括:若检测到所述卷积结果元素的数值是大于0,则确定该卷积结果元素对应的图像模板在所述待处理图像中框定的图像区域内存在灰度值为预设搜索值的像素点,进而确定当前执行的步骤A所获得的一个卷积结果元素满足所述预设灰度值条件;其中,该卷积结果元素对应的图像模板是配置为以矩阵卷积运算为目的而支持在所述待处理图像内平移的卷积模板。

进一步地,所述图像模板是以矩阵的形式存在的一种卷积核,所述图像模板中存在数值为1的矩阵元素和数值为0的矩阵元素,其中,数值为1的矩阵元素在所述图像模板中分布的位置特征决定所述待处理图像内实际参与图像处理的像素点。

进一步地,在所述图像模板内,数值为1的矩阵元素组成的形状是定义为所述图像模板的形状。

进一步地,所述预设搜索值是大于0;或者所述预设搜索值按照预设像素值函数换算出的映射值是1。

进一步地,所述步骤A具体包括:利用二维离散傅里叶变换将所述待处理图像从空间域变换至频域,获得第一参数矩阵;利用二维离散傅里叶变换将所述图像模板从空间域变换到频域,获得第二参数矩阵;将第一参数矩阵的每个矩阵元素分别与第二参数矩阵中相应矩阵位置的矩阵元素相乘,获得第三参数矩阵;利用二维离散傅里叶逆变换将第三参数矩阵从频域变换至空间域,获得卷积结果矩阵,以实现控制图像模板与待处理图像以在对应频域内相乘的形式获得对应空间域内的卷积结果元素;其中,前述对应空间域内的卷积结果元素排列为卷积结果矩阵;一个卷积结果元素在所述卷积结果矩阵内的相对位置与同一个卷积结果元素对应的图像模板的中心在所述待处理图像内的相对位置相同;前述的相对位置是一个矩阵元素相对于所属矩阵的一个固定边角点位置的矩阵元素的位置关系。

进一步地,所述图像模板被等效配置为:所述图像模板在所述待处理图像内平移的过程中,所述图像模板的中心每覆盖到所述待处理图像的一个像素点,则由所述图像模板自身存在的元素与所述图像模板当前框定的图像区域内的像素点进行矩阵卷积运算,获得一个所述卷积结果元素;直到所述图像模板的中心遍历完所述待处理图像内所有像素点后,所有经过矩阵卷积运算获得的卷积结果元素组成一个输出矩阵,等于所述卷积结果矩阵;其中,所述图像模板内所有的元素是预先配置的;所述待处理图像内所有的元素也是预先配置的。

进一步地,当检测到一个卷积结果元素的数值是大于0时,该卷积结果元素对应的图像模板的中心在所述待处理图像内覆盖的像素点的邻域内存在所述灰度值为预设搜索值的像素点。

进一步地,所述第一参数矩阵中的每个矩阵元素都是以二维离散傅里叶变换形式描述的傅里叶系数;所述第二参数矩阵中的每个矩阵元素都是以二维离散傅里叶变换形式描述的傅里叶系数;所述第三参数矩阵的行数、所述第二参数矩阵的行数和所述第一参数矩阵的行数都相等;所述第三参数矩阵的列数、所述第二参数矩阵的列数和所述第一参数矩阵的列数都相等;所述卷积结果矩阵的行数与所述待处理图像对应的像素矩阵的行数相等;所述卷积结果矩阵的列数与所述待处理图像对应的像素矩阵的列数相等。

一种芯片,该芯片存储有所述一种基于卷积算法的图像处理方法对应的程序代码。

进一步地,所述芯片集成卷积硬件加速器,用于将所述待处理图像和所述图像模板之间的矩阵卷积运算转换为两个序列之间的卷积运算;其中,每个序列中的每个元素是所述卷积硬件加速器将对应的矩阵的一行元素作一维离散傅里叶变换的结果、或者所述卷积硬件加速器将对应的矩阵的一列元素作一维离散傅里叶变换的结果;每个序列中的每个元素都是由卷积硬件加速器作并行处理而获得。

进一步地,所述芯片集成卷积硬件加速器,用于在所述待处理图像在频域上的变换值与对应参与矩阵卷积运算的图像模板在对应频域上的变换值相乘并输出一个参数矩阵后,先将参数矩阵的每一行元素并行地作一维离散傅里叶逆变换,获得一个中间结果序列,再将该中间结果序列的每一列元素并行地作一维离散傅里叶逆变换,最后获得一个卷积结果矩阵,以完成二维离散傅里叶逆变换;或者,用于在所述待处理图像在频域上的变换值与对应参与矩阵卷积运算的图像模板在对应频域上的变换值相乘并输出一个参数矩阵后,先将参数矩阵的每一列元素并行地作一维离散傅里叶逆变换,获得一个中间结果序列,再将该中间结果序列的每一行元素并行地作一维离散傅里叶逆变换,最后获得一个卷积结果矩阵。

与现有技术相比,本发明的有益技术效果在于:一方面,针对图像模板和待处理图像的经过快速傅里叶变换而得到的等效卷积结果,在图像模板的中心的特定邻域(图像模板框定的图像区域)内存在一个预设搜索值的像素点时,则将图像模板的中心的灰度值配置为预设目标灰度值。比起背景技术提及的各种灰度值的赋值处理,本发明不需对所述待处理图像的边界外部的像素点进行赋值,避免所述待处理图像的边界点扩张过大,减少像素点处理数据量,保证图像处理的实时性。

另一方面,在待处理图像的尺寸大小比较大时,为了降低传统的卷积运算或扩张搜索运算所带来的庞大的计算时间成本,本发明先后利用快速傅里叶变换及快速傅里叶逆变换来加速待处理图像和图像模板的卷积处理过程,以加快获得对应的图像区域内需要重新赋值的像素点,进而加快图像膨胀计算的进程,从而减少了计算次数,特别是被处理的图像内的离散像素点越多,本发明的计算时间的节省程度就越显著。采用快速傅里叶变换来代替卷积运算,主要是能减少运算量和存储开销,且对于硬件实现特别有利。

附图说明

图1为本发明一种实施例公开的一种基于卷积算法的图像处理方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本发明,并不用于限定本发明。在下面的描述中,给出具体细节以提供对实施例的透彻理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实施实施例。例如,电路可以在框图中显示,避免在不必要的细节中使实施例模糊。在其他情况下,为了不混淆实施例,可以不详细显示公知的电路、结构和技术。

作为一种实施例,本发明公开一种基于卷积算法的图像处理方法,如图1所示,具体包括:

步骤A、利用快速傅里叶变换及快速傅里叶逆变换,来控制图像模板与待处理图像以在对应频域内相乘的形式获得对应空间域内的卷积结果元素;然后进入步骤B。

具体地,本实施例将图像模板设置为对待处理图像进行膨胀或其它的形态学图像处理的基本操作单元,通常要比待处理图像小。图像模板是配置为以矩阵卷积运算为目的而支持在所述待处理图像内平移的卷积模板,即图像模板是用于扫描所述待处理图像的卷积核。

结合背景技术可知,图像模板可以框定待处理图像中需要处理的像素范围,并可以使用图像模板与其覆盖的二值图像做“与”操作,等效于图像模板与待处理图像的一次矩阵卷积运算,即在图像模板当前框定的图像区域内的所有像素点的相乘并相加操作,如果一次卷积运算的结果都为0,则在图像模板当前框定的图像区域内,与图像模板的非0的元素对应的像素点的灰度值都为0;否则将图像模板当前框定的图像区域内的像素点都赋值为1或大于0,进而使二值图像(待处理图像二值化后的图像)扩大一圈,达到图像膨胀的目的。

本领域技术人员容易理解的是,在矩阵卷积运算中,每当图像模板的中心对准所述待处理图像的一个像素点时,图像模板中的每个元素与其覆盖的相应位置处的像素点所代表的数值相乘并相加,得到一个卷积结果元素,其中,所覆盖区域的没有像素点的则将像素点所代表的数值设置为0;当图像模板的中心扫描过待处理图像的所有像素点后,对待处理图像的每个像素点都经过前述的相乘并相加的操作,获得一个个元素组成的矩阵作为图像模板,r是正整数,为了得到图像模板的中心覆盖的某一像素点对应的卷积结(2r)2次加法运算,获得每一个卷积结果元素耗费的计算次数是与r的二次方成一定的比例关系;进一步地,个像素组成的像素矩阵(n大于2r+1),每当图像模板的中心扫描过待处理图像的一个像素点时,图像模n2次单位像素偏移,则为了获得一个卷积结果矩阵而累计进行((2r+1)2+(2r)2)n2次运算,使得计算时间的复杂度呈现二次方增长,这对图像的卷积运算的实时性产生影响,约束相关的图像处理的速度,包括约束图像膨胀操作的速度的提高。

综上,为了减少图像膨胀计算及相关联的图像处理算法所耗费的时间复杂度,在步骤A中先后利用快速傅里叶变换及快速傅里叶逆变换,来控制图像模板与待处理图像以在对应频域内相乘的形式获得对应空间域内的卷积结果元素,其中,该步骤控制图像模板在对应频域内的换算系数与待处理图像在对应频域内的换算系数相乘,以替代图像模板与待处理图像之间的卷积运算(即两个像素矩阵之间的矩阵卷积运算),并获得相同的运算结果,即等于对应空间域内的卷积结果元素。

具体地,快速傅里叶变换(fast Fourier transform),即利用计算机计算离散傅里叶变换(DFT)的高效、快速计算方法的统称,简称FFT。离散傅里叶变换能够对图像的频谱在0度至360度的区间上的离散点等间隔采样,也就是对序列频谱的离散化,这就是DFT的物理意义。图像模板和待处理图像都是由离散的点矩阵构成;在离散傅里叶变换的形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散信号作DFT,也应当将其看作经过周期延拓成为周期信号再作变换。在本实施例中采用快速傅里叶变换以高效计算DFT。

需要说明的是,傅里叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换而言之,傅里叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅里叶逆变换是将图像的频率分布函数变换为灰度分布函数。快速傅里叶变换是离散傅里叶变换的快速算法,当数据源较大时(大于1000),快速傅里叶变换有明显优势。

个像素组成的像素矩阵,其中,n和r都是正整数,n大于2r+1;利用快速傅里叶变换来将所述图像模板与对应参与卷积的所述待处理图像都由空间域转换到频域空间上,然后将所述图像模板在频域空间位置上的变换值与对应参与卷积的所述待处理图像在对应频域空间位置上的变换值相乘,再经过快速傅里叶变换((2r+1)2+(2r)2)n2次运算降低为(2r+1)nlog2((2r+1)n)次运算,降低计算时间的复杂度,加速二维像素点的卷积。

因此,在待处理图像的尺寸大小比较大时,为了降低传统的卷积运算或扩张搜索运算所带来的庞大的计算时间成本,本发明先后利用快速傅里叶变换及快速傅里叶逆变换来加速待处理图像和图像模板的卷积处理过程,以加快获得对应的图像区域内需要重新赋值的像素点,进而加快图像膨胀计算的进程,从而减少了计算次数,特别是被处理的图像内的离散像素点越多,本发明的计算时间的节省程度就越显著。采用快速傅里叶变换来代替卷积运算,主要是能减少运算量和存储开销,且对于硬件实现特别有利。

步骤B、若存在一个卷积结果元素满足预设灰度值条件,则将该卷积结果元素在待处理图像内对应的像素点的灰度值设置为预设目标灰度值;否则该卷积结果元素在待处理图像内对应的像素点的灰度值保持原来的灰度值。在本实施例中,若在前述快速傅里叶逆变换输出的矩阵中,检测到一个卷积结果元素的数值是满足预设灰度值条件时,确定所述图像模板的中心等效平移至所述待处理图像的相应位置处时,该相应位置的附近存在特定的灰度值的像素点并被所述图像模板检测到,则将该相应位置处的像素点的灰度值设置为预设目标灰度值,以达到预设目标灰度值的像素点在所述待处理图像内扩张的目的。

作为一种实施方式,所述步骤B具体包括:若检测到所述卷积结果元素的数值是大于0,则将该卷积结果元素对应的图像模板的中心在所述待处理图像内覆盖的像素点的灰度值设置为所述预设目标灰度值,其中,所述预设目标灰度值可以是0,也可以大于0。若检测到所述卷积结果元素的数值不是大于0,则控制该卷积结果元素对应的图像模板的中心在所述待处理图像内覆盖的像素点的灰度值保持不变。本实施例将所述卷积结果元素的数值大于0配置为该卷积结果元素满足预设灰度值条件;无论所述图像模板的元素中是否存在数值1和数值0,都不会对判断所述卷积结果元素的数值是否大于0造成误判,因为所述图像模板经过快速傅里叶变换后的参数是等效于经过周期延拓处理后的参数,所述图像模板和所述待处理图像在快速傅里叶变换及快速傅里叶逆变换的过程中都是周期信号,等效于矩阵卷积运算果过程中,所述图像模板在所述待处理图像内的平移操作。从而利用数值0来排除掉所述待处理图像中的灰度值为0的区域(黑色区域)对图像处理的影响,可以理解为排除掉待处理图像内的无效区域的影响,进而提取出灰度值需要配置为所述预设目标灰度值的像素点,加快通过图像膨胀操作来将图像像素点设置为所述预设目标灰度值的像素点,以实现对待处理图像内相应的连通域的面积的增加操作;其中,排除掉所述待处理图像中的无效区域的是保持位于该卷积结果元素对应的图像模板的中心覆盖的像素点的邻域范围内,该卷积结果元素对应的图像模板的中心是起到实际卷积运算效果的图像模板的中心。

综上,针对图像模板和待处理图像的经过快速傅里叶变换和逆变换而得到的等效卷积结果,在图像模板的中心的特定邻域(图像模板框定的图像区域)内存在一个预设搜索值的像素点时,则将图像模板的中心的灰度值配置为预设目标灰度值。比起背景技术提及的各种灰度值的赋值处理,本发明不需对所述待处理图像的边界外部的像素点进行赋值,避免所述待处理图像的边界点扩张过大,减少像素点处理数据量,保证图像处理的实时性。

作为一种实施例,在所述步骤B中,若检测到所述卷积结果元素的数值是大于0,则确定该卷积结果元素对应的图像模板在所述待处理图像中框定的图像区域内存在灰度值为预设搜索值的像素点,进而确定当前执行的步骤A所获得的一个卷积结果元素满足所述预设灰度值条件;可以理解为灰度值为预设搜索值的像素点参与步骤A之后,由该步骤A输出的卷积结果元素满足所述预设灰度值条件;也可以理解为,灰度值为预设搜索值的像素点被所述图像模板框定的情况下,参与等效的矩阵卷积运算后,获得的其中一个卷积结果满足所述预设灰度值条件。若检测到所述卷积结果元素的数值不是大于0,则确定该卷积结果元素对应的图像模板在所述待处理图像中框定的图像区域内不存在灰度值为预设搜索值的像素点,进而确定该步骤A输出的卷积结果元素不满足所述预设灰度值条件。其中,预设搜索值设置为大于0的数值或大于0的灰度值(一般会将预设搜索值设置为255),在所述图像模板应用于图像膨胀操作时,通过卷积的方式扫描获取灰度值为预设搜索值的像素点,才产生组成连通域的必要性,即通过将该卷积结果元素对应的图像模板的中心覆盖的像素点的灰度值设置为所述预设目标灰度值,使其能够与邻域内存在的灰度值为预设搜索值的像素点合并成为同一类型的像素点、或者使其能够与邻域内存在的灰度值为所述预设目标灰度值的像素点组成白色连通域,可以组成所述待处理图像的边界、或平滑原来的图像边界。优选地,该卷积结果元素对应的图像模板的中心覆盖的像素点的灰度值可以是预设搜索值,然后被配置为所述预设目标灰度值,其中,预设搜索值可以等于所述预设目标灰度值。

需要说明的是,该卷积结果元素对应的图像模板是配置为以矩阵卷积运算为目的而支持在所述待处理图像内平移的卷积模板,值得注意的是,这里对图像模板的限定是针对该卷积结果元素与其在所述待处理图像内参与前述快速傅里叶变换的像素点之间的对应关系,所述图像模板在本实施例中没有发生平移操作,具体是没有在所述待处理图像内进行平移,以避开卷积运算中需要进行的逐项小窗的乘法计算。

优选地,所述图像模板是以矩阵的形式存在的一种卷积核,所述图像模板中存在数值为1的矩阵元素和数值为0的矩阵元素,其中,数值为1的矩阵元素在所述图像模板中分布的位置特征决定所述待处理图像内实际参与图像处理的像素点;当所述图像模板作为结构元素时,所述图像模板中数值为1的元素决定所述图像模板的中心覆盖的像素点或该元素在所述待处理图像内覆盖的像素点的邻域像素点在进行膨胀时是否需要参与计算。简化所述图像模板作为卷积核参与前述矩阵卷积运算或前述快速傅里叶变换的计算复杂度。

在上述实施例的基础上,在所述图像模板内,数值为1的矩阵元素组成的形状是定义为所述图像模板的形状。所述图像模板是形态学的基本算子,合理选取所述图像模板直接影响图像处理的效果和质量。所述图像模板的形状包括但不限于圆形、正方形、菱形、六边形、线段形。圆形图像模板,由于各向同性,因此可以得到与方向无关的运算结果,正方形、菱形可以看作是圆形的变异。不同形状的结构元素运算结果会有差异,应针对待处理图像的几何形状进行选择。

具体地,所述图像模板作为卷积核,其起到实际计算效果的形状是:数值为1的元素组成的部分区域;在所述图像模板内,若数值为1的元素围成圆形,则对应将所述图像模板中起实际计算效果的形状是圆形;若数值为1的元素在所述图像模板内围成菱形,则对应将所述图像模板中起实际计算效果的形状是菱形。从而能够每当检测到所述卷积结果元素的数值是大于0时,将该卷积结果元素对应的图像模板的中心在所述待处理图像内覆盖的像素点的灰度值设置为所述预设目标灰度值,进而,在遍历完步骤A输出的所有的卷积结果元素后,在所述待处理图像内,灰度值为所述预设目标灰度值的像素点连接形成的形状与所述图像模板中起实际计算效果的形状相同或相适应。

具体地,所述预设搜索值是大于0;或者所述预设搜索值按照预设像素值函数换算出的映射值是1,即这个映射值是逻辑值1,以将所述待处理图像转换为二值图像,此时会将所述待处理图像内所有灰度值大于0的像素点的灰度值都映射为逻辑1,而所述待处理图像内所有灰度值等于0的像素点的灰度值都映射为逻辑0。在一些实施方式中,可以把所述待处理图像看做成一个二维的数组,然后将所述待处理图像转换为一个二值图像,其中,二值图像是一个只有0和1的二维逻辑数组;同时,所述图像模板配置成元素的数值全为1的卷积核,所述图像模板的中心当前扫描图像的一个特定像素,用所述图像模板与其覆盖的二值图像做“与”操作,若当前输出的一个“与”操作的结果为1,则所述图像模板的中心当前覆盖的像素点是与该“与”操作的结果相对应,该“与”操作的结果可以反映所述图像模板的中心当前覆盖的像素点自身及其邻域内存在数值为1的元素,然后进一步地将所述图像模板的中心当前覆盖的像素点的数值设置为1,结果使二值图中的数值为1的像素点增加一个;若当前输出的一个“与”操作的结果为0,则该“与”操作的结果可以反映所述图像模板当前框定的图像区域内(所述图像模板的中心当前覆盖的像素点自身及其邻域内)不存在数值为1的元素,不需对所述图像模板的中心覆盖的像素点进行重新赋值处理,保持原来的灰度值不变。

作为一种实施例,所述步骤A具体包括:利用二维离散傅里叶变换将所述待处理图像从空间域变换至频域,获得第一参数矩阵,则第一参数矩阵内的每个矩阵元素都是转换获得的傅里叶系数;需要说明的是,快速傅里叶变换在使用计算机装置对图像这一类矩阵信号进行处理时,采用二维离散傅里叶变换实现。同理地,利用二维离散傅里叶变换将所述图像模板从空间域变换到频域,获得第二参数矩阵,则第二参数矩阵内的每个矩阵元素都是转换获得的傅里叶系数;其中,所述图像模板是属于二维数组,作为一种矩阵信号参与傅里叶变换;需要说明的是,基于傅里叶变换过程涉及的周期延拓处理的结果,第二参数矩阵内的傅里叶系数的数目等于第一参数矩阵内的傅里叶系数的数目。然后,将第一参数矩阵的每个矩阵元素分别与第二参数矩阵中相应矩阵位置的矩阵元素相乘,获得第三参数矩阵,值得注意的是此时的矩阵元素的相乘方式不同于两个矩阵之间的相乘方式。然后,利用二维离散傅里叶逆变换将第三参数矩阵从频域变换至空间域,获得卷积结果矩阵,以实现控制图像模板与待处理图像以在对应频域内相乘的形式获得对应空间域内的卷积结果元素。因此,本实施例在需要进行图像卷积运算时,使用前述涉及的快速傅里叶变换及其逆变换来降低矩阵元素的运算时间,使得让实时处理图像信号成为可能,主要是能减少运算量和存储开销,对于硬件实现特别有利。

需要说明的是,前述对应空间域内的卷积结果元素排列为卷积结果矩阵,填充到卷积结果矩阵的对应一行和对应一列的位置上;一个卷积结果元素在所述卷积结果矩阵内的相对位置与同一个卷积结果元素对应的图像模板的中心在所述待处理图像内的相对位置相同,值得注意的是,前述的相对位置是一个矩阵元素相对于所属矩阵的一个固定边角点位置的矩阵元素的位置关系,优选地,这个固定边角点位置包括但不限于所述待处理图像的左上角的像素点、所述待处理图像的右上角的像素点和所述待处理图像的左下角的像素点、所述待处理图像的右下角的像素点;所述待处理图像是以像素矩阵的形式存在,包括每个像素点的灰度值。

需要说明的是,前述的二维离散傅里叶变换及其逆变换实质上是一个将用系数表示的多项式转换成它的点值表示的算法,从而将计算时间的复杂度从二次方级降低为对数级,在处理的像素的数量较大时,计算时间的复杂度降低得比较明显。

在前述实施例中,所述图像模板被等效配置为:所述图像模板在所述待处理图像内平移的过程中,所述图像模板的中心每覆盖到所述待处理图像的一个像素点,则由所述图像模板自身存在的元素与所述图像模板当前框定的图像区域内的像素点进行矩阵卷积运算,获得一个所述卷积结果元素,矩阵卷积运算的具体计算步骤参照前述实施例,在此不再赘述。当所述图像模板的中心遍历完所述待处理图像内所有像素点后,所有经过矩阵卷积运算获得的卷积结果元素组成一个输出矩阵,等于所述卷积结果矩阵;值得注意的是,本实施例对所述图像模板的动作的配置仅限于说明所述图像模板与所述待处理图像之间所能进行的矩阵卷积运算产生的技术效果,并指出部分能够用于二维离散傅里叶变换的技术特征,并不能代表所述图像模板在相关实施例中实际发生平移。从而为前述换算出的卷积结果矩阵的每个矩阵元素与所述待处理图像中参与快速傅里叶变换的像素点搭建起位置匹配关系。

需要说明的是,所述图像模板内所有的元素是预先配置的;所述待处理图像内所有的元素也是预先配置的。其中,所述待处理图像可以是地图,然后,地图的矩阵的矩阵元素是地图坐标位置处取值或地图图像在相应像素点得灰度值;所述图像模板也可以是由像素矩阵组成,所述图像模板内的元素是相应位置处的像素点的灰度值。

优选地,当检测到一个卷积结果元素的数值是大于0时,该卷积结果元素对应的图像模板的中心在所述待处理图像内覆盖的像素点的邻域内存在所述灰度值为预设搜索值的像素点,该优选例虽然不能确定该卷积结果元素对应的图像模板在所述待处理图像的中心覆盖的像素点的灰度值为预设搜索值的像素点,但是确定当前执行的步骤A所获得的一个卷积结果元素满足所述预设灰度值条件;可以理解为灰度值为预设搜索值的像素点参与步骤A之后,由该步骤A输出的卷积结果元素满足所述预设灰度值条件;也可以理解为,灰度值为预设搜索值的像素点被所述图像模板框定的情况下,参与等效的矩阵卷积运算后,获得的其中一个卷积结果满足所述预设灰度值条件。

作为一种实施例,所述第一参数矩阵中的每个矩阵元素都是以二维离散傅里叶变换形式描述的傅里叶系数,可以理解为属于所述待处理图像内相关像素点的灰度值经过周期延拓的结果;所述第二参数矩阵中的每个矩阵元素都是以二维离散傅里叶变换形式描述的傅里叶系数,可以理解为属于所述图像模板内相关元素的数值经过周期延拓的结果。在进行前述的快速傅里叶变换及快速傅里叶逆变换的过程中,所述第三参数矩阵的行数、所述第二参数矩阵的行数和所述第一参数矩阵的行数都相等,同时,所述第三参数矩阵的列数、所述第二参数矩阵的列数和所述第一参数矩阵的列数都相等;最后输出的所述卷积结果矩阵的行数与所述待处理图像对应的像素矩阵的行数相等,所述卷积结果矩阵的列数与所述待处理图像对应的像素矩阵的列数相等。从而利用DFT计算式中的指数因子所具有的对称性质和周期性质,组合出所述第二参数矩阵和所述第一参数矩阵。

前述的二维离散傅里叶变换的全过程包括:先沿输入图像的每一行像素点,去逐行地计算一维变换,变换出中间结果,此时中间结果组成一个中间结果序列;再沿中间结果序列的每一列像素点,逐列地去计算一维变换,最后获得一个输出矩阵,需要说明的是,可以改变上述顺序,即先列后行地进行相应的一维变换,这里的一维变换都属于适用于周期信号的一维离散傅里叶变换。相应地,上述计算变换的过程也适应地运用于计算二维离散傅里叶逆变换,只是前述的一维变换改变为一维逆变换。综上,本实施例把待处理图像的像素矩阵和所述图像模板,分别分解成一系列的短序列,再充分利用DFT计算式中的指数因子所具有的对称性质和周期性质,进而求出这些短序列相应的DFT并进行适当组合,达到删除重复计算,减少乘法运算,达到简化图像卷积计算的目的。

需要补充的是,利用一维离散傅里叶变换处理所述待处理图像或所述图像模板的过程中,分成两个部分来计算,每个部分都是由相同数量的元素参与变换计算,其中一个部分是设置为离散傅里叶变换的奇部,另一部分是设置为离散傅里叶变换的偶部,离散傅里叶变换的奇部与离散傅里叶变换的偶部之和得到离散傅里叶变换的其中一半傅里叶系数,离散傅里叶变换的奇部与离散傅里叶变换的偶部之差得到离散傅里叶变换的另外一半傅里叶系数。因此,在频域中,每一次回溯时只计算所述待处理图像的一半矩阵元素的离散傅里叶变换的结果,即可推算出所述待处理图像的另一半矩阵元素的的离散傅里叶变换的结果。从而减少变换计算,从而降低计算复杂度,使得变换前后的计算量的数量级由幂的数量级降为对数的数量级,差异明显。

综上,申请人输入所述待处理图像和所述图像模板后,经过反复执行前述实施例所述的一种基于卷积算法的图像处理方法;当所述待处理图像和所述图像模板通过执行卷积矩阵运算输出所述卷积结果矩阵累计需要耗费1秒左右时,执行前述实施例所述的一种基于卷积算法的图像处理方法则只需要在200ms左右就可以输出相等的所述卷积结果矩阵。

本发明还公开一种芯片,该芯片存储有前述实施例公开的一种基于卷积算法的图像处理方法对应的程序代码。减少像素点处理数据量,提高该芯片处理图像的实时性。

作为一种实施例,所述芯片集成卷积硬件加速器,用于将所述待处理图像和所述图像模板之间的矩阵卷积运算转换为两个序列之间的卷积运算;其中,每个序列中的每个元素是所述卷积硬件加速器将对应的矩阵的一行元素(矩阵的一行中的每个元素)作一维离散傅里叶变换的结果、或者所述卷积硬件加速器将对应的矩阵的一列元素(矩阵的一列中的每个元素)作一维离散傅里叶变换的结果;每个序列中的每个元素都是由卷积硬件加速器作并行处理而获得,一个元素只配置一个寄存器以参与一维离散傅里叶变换,不同元素对应配置的寄存器是并行执行的且每个寄存器传输信号的通路是互不干扰。从而加快卷积硬件加速器对矩阵信号进行二维离散傅里叶变换的速度。

作为一种实施例,所述芯片集成卷积硬件加速器,用于在所述待处理图像在频域上的变换值与对应参与矩阵卷积运算的图像模板在对应频域上的变换值相乘并输出一个参数矩阵后,先将参数矩阵的每一行元素并行地作一维离散傅里叶逆变换,获得一个中间结果序列,再将该中间结果序列的每一列元素并行地作一维离散傅里叶逆变换,最后获得一个卷积结果矩阵,以完成二维离散傅里叶逆变换;或者,用于在所述待处理图像在频域上的变换值与对应参与矩阵卷积运算的图像模板在对应频域上的变换值相乘并输出一个参数矩阵后,先将参数矩阵的每一列元素并行地作一维离散傅里叶逆变换,获得一个中间结果序列,再将该中间结果序列的每一行元素并行地作一维离散傅里叶逆变换,最后获得一个卷积结果矩阵。其中,一行元素只配置的一个寄存器参与逆变换操作,不同行元素对应配置的寄存器是并行执行的且每个寄存器传输信号的通路是互不干扰;所有行元素对应配置的寄存器是并行处理对应输入的信号;一列元素只配置的一个寄存器参与逆变换操作,不同列元素对应配置的寄存器是并行执行的且每个寄存器传输信号的通路是互不干扰。加快卷积硬件加速器对矩阵信号进行二维离散傅里叶逆变换的速度。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。这些程序可以存储于计算机可读取存储介质(比如ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质)中。该程序在执行时,执行包括上述各方法实施例的步骤。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

技术分类

06120115889432