CN109961450B - 图像二值化处理方法、装置、存储介质和电子设备 - Google Patents
图像二值化处理方法、装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN109961450B CN109961450B CN201910122440.7A CN201910122440A CN109961450B CN 109961450 B CN109961450 B CN 109961450B CN 201910122440 A CN201910122440 A CN 201910122440A CN 109961450 B CN109961450 B CN 109961450B
- Authority
- CN
- China
- Prior art keywords
- value
- pixel
- multipliers
- image
- ram
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明实施例提供一种图像二值化处理方法、装置、计算机可读存储介质和电子设备。通过硬件实现的图像二值化处理方法包括:RAM初始化步骤:将用于记录各个像素值的像素个数的RAM初始化为零;图像读取步骤:通过直接内存存取(DMA)单元,读取待处理图像;总乘积和值计算步骤:通过至少两组第一乘法器,并行地计算其对应分区内的各个所述像素值与其像素个数值的乘积和值,并且将各个乘积和值相加得到总乘积和值GSUM;类间方差计算步骤:通过至少三个第二乘法器以及除法器并根据所述总乘积和值GSUM,迭代地计算对应于各个像素值的类间方差值Gi,并且获得当前的最大类间方差值Gmax;阈值确定步骤:将最终获得的最大类间方差值Gmax作为图像二值化的阈值。
Description
技术领域
本发明实施例涉及图像处理技术,尤其涉及一种通过硬件实现的图像二值化处理方法、装置、计算机可读存储介质和电子设备。
背景技术
数字图像处理是指利用计算机或其他数字设备对图像信息进行各种加工和处理,这项技术发展异常迅速,且应用领域也极为广泛。
对图像的处理(或加工、分析)的主要分为三个方面:
(a)提高图像的视感质量,如进行图像的亮度、彩色变换,增强、抑制某些成分,对图像进行几何变换等,以改善图像的质量。
(b)提取图像中所包含的某些特征或特殊信息。提取的特征可包括例如频域特征、灰度或颜色特征、边界特征、区域特征、纹理特征、形状特征、拓扑特征和关系结构等,这些被提取的特征或信息作为计算机图像分析的处理基础。
(c)图像数据的变换、编码和压缩,以便于图像的存储和传输。无论进行何种目的的图像处理,均需要由计算机和图像专用设备组成的图像处理系统对图像数据进行输入、加工和输出。
此外,随着图像处理的要求和应用场景的不断扩大,在技术上首先会对摄像头所采集的图像尺寸提出更高的要求。这也必然导致软件处理图像效率低的问题的暴露,这将使得以嵌入式软件算法来进行图像处理的方式将更加的低效和不满足需求。其次,对终端系统的功耗和面积的要求也将不断提高。这意味着在技术上需要用更低频率的处理器和更快速的处理时间来满足这一需求。因此,使用硬件实现图像处理算法也成为了必然的发展趋势。
上述图像处理过程在很多方面用到了图像分割及求阈值,而在图像分割及求阈值中最为常用的就是大津算法。现今通常使用的大津算法都是基于软件算法实现的。在处理过程中,需要对图像存储器进行读写操作,每一次读写需要耗费几十个处理器周期,严重拖慢了效率。
此外,软件实现的大津算法在执行过程中,采用顺序计算方法,即顺序的执行乘法、除法等操作,这进一步增加了处理时间。
由于软件算法的低效率,对于有时限要求的应用场景来说,使得需要使用高频率的处理器,从而提高了系统的整体功耗。同时,随着图像品质及应用需求的提高,软件算法实现会进一步的低效,使得其算法无法适应更多的应用场景。
发明内容
本发明实施例的目的在于,提供一种通过硬件实现的图像处理方案,以通过硬件快速、有效地完成图像的二值化阈值计算。
根据本发明实施例的第一方面,提供一种通过硬件实现的图像二值化处理方法,包括:RAM初始化步骤:将用于记录各个像素值的像素个数的随机存取存储器(RAM)初始化为零,所述RAM包含256个数据存储单元,每个数据存储单元在RAM中的地址对应于其记录像素个数的像素值;图像读取步骤:通过直接内存存取(DMA)单元,读取待处理图像,每读入一个或多个像素值,将所述RAM中该像素值对应的数据存储单元中的像素个数值累积加1,直至完成待处理图像的读取为止;总乘积和值计算步骤:通过至少两组第一乘法器,并行地计算其对应分区内的各个所述像素值与其像素个数值的乘积和值,并且将各个乘积和值相加得到总乘积和值GSUM,其中,每组所述第一乘法器对应于所述RAM的一个分区;类间方差计算步骤:通过至少三个第二乘法器以及除法器并根据所述总乘积和值GSUM,迭代地计算对应于各个像素值的类间方差值Gi,并且通过比较器将计算得到的类间方差值Gi与已有的最大类间方差值Gmax进行比较,获得当前的最大类间方差值Gmax,i∈[0,255];阈值确定步骤:将经过迭代计算和比较获得的最大类间方差值Gmax作为图像二值化的阈值。
可选地,通过主状态机执行所述图像二值化处理方法,通过子状态机执行所述类间方差计算步骤。
可选地,所述RAM的寻址位宽为8,所述RAM的数据读入宽度为2n,n∈[0,7]。
可选地,所述至少两组第一乘法器为两组。相应地,在所述总乘积和值计算步骤,第一组第一乘法器从地址0开始,将各个地址对应的像素值与其像素个数进行相乘累加,累加到地址127为止,第二组第一乘法器从地址255开始,并行地将各个地址对应的像素值与其像素个数进行相乘累加,累加到地址128为止,再将第一组第一乘法器累加得到的乘积和值与第二组第一乘法器累加得到的乘积和值相加,获得所述总乘积和值GSUM。
可选地,在所述类间方差计算步骤中,通过以下公式迭代地计算获得对应于像素值i的类间方差值Gi:
其中,S为待处理图像的总像素个数,Numi为像素值i对应的像素个数,GSumi为从0像素值与其对应的像素个数到像素值i与其对应的像素个数的乘积和值。
可选地,所述至少三个第二乘法器为三个。相应地,在所述类间方差计算步骤中,通过第一个第二乘法器计算GSumi,通过第二个第二乘法器和第三个第二乘法器并行地执行各两次乘法计算GSumi×S、GSUM×Numi、Numi×(S-Numi)以及(GSumi×S-GSUM×Numi)2。
根据本发明实施例的第二方面,提供一种通过硬件实现的图像二值化处理装置,包括:RAM初始化模块,用于将用于记录各个像素值的像素个数的随机存取存储器(RAM)初始化为零,所述RAM包含256个数据存储单元,每个数据存储单元在RAM中的地址对应于其记录像素个数的像素值;图像读取模块,用于通过直接内存存取(DMA)单元,读取待处理图像,每读入一个或多个像素值,将所述RAM中该像素值对应的数据存储单元中的像素个数值累积加1,直至完成待处理图像的读取为止;总乘积和值计算模块,用于通过至少两组第一乘法器,并行地计算其对应分区内的各个所述像素值与其像素个数值的乘积和值,并且将各个乘积和值相加得到总乘积和值GSUM,其中,每组所述第一乘法器对应于所述RAM的一个分区;类间方差计算模块,用于通过至少三个第二乘法器以及除法器并根据所述总乘积和值GSUM,迭代地计算对应于各个像素值的类间方差值Gi,并且通过比较器将计算得到的类间方差值Gi与已有的最大类间方差值Gmax进行比较,获得当前的最大类间方差值Gmax,i∈[0,255];阈值确定模块,用于将经过迭代计算和比较获得的最大类间方差值Gmax确定为图像二值化的阈值。
可选地,所述图像二值化处理装置实现为主状态机,所述类间方差计算模块实现为子状态机。
可选地,其中,所述至少两组第一乘法器为两组。相应地,第一组第一乘法器用于从地址0开始,将各个地址对应的像素值与其像素个数进行相乘累加,累加到地址127为止,第二组第一乘法器用于从地址255开始,并行地将各个地址对应的像素值与其像素个数进行相乘累加,累加到地址128为止,所述总乘积和值计算模块用于将第一组第一乘法器累加得到的乘积和值与第二组第一乘法器累加得到的乘积和值相加,获得所述总乘积和值GSUM。
可选地,所述类间方差计算模块用于通过以下公式迭代地计算获得对应于像素值i的类间方差值Gi:
其中,S为待处理图像的总像素个数,Numi为像素值i对应的像素个数,GSumi为从0像素值与其对应的像素个数到像素值i与其对应的像素个数的乘积和值。
可选地,所述至少三个第二乘法器为三个。相应地,所述类间方差计算模块用于通过第一个第二乘法器计算GSumi,通过第二个第二乘法器和第三个第二乘法器并行地执行各两次乘法计算GSumi×S、GSUM×Numi、Numi×(S-Numi)以及(GSumi×S-GSUM×Numi)2。
根据本发明实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,其中,所述程序指令被处理器执行时实现任一前述图像二值化处理方法的模块。
根据本发明实施例的第四方面,提供一种电子设备,包括:处理器、存储器、通信元件和通信总线,所述处理器、所述存储器和所述通信元件通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如任一前述图像二值化处理方法对应的操作。提供一种...。
根据本发明实施例提供的通过硬件实现的图像二值化处理方案,能够使用已有的硬件模块来执行相应的操作处理,并且并行地执行部分运算处理,能够快速地计算得到用于待处理图像二值化的阈值。在实际应用中,也能够相应地降低计算系统的整体功耗。此外,能够在小型微设备中实现图像处理,同时在处理性能上能够满足高品质图像的处理效率要求。
附图说明
图1是示出根据本发明一些实施例的图像二值化处理方法的流程图;
图2是示出根据本发明另一些实施例的用于求取总乘积和值计算步骤的时序的示意图;
图3是示出根据本发明又一些实施例的图像二值化处理方法的主状态机的示意图;
图4是示出根据本发明又一些实施例的用于执行类间方差计算的子状态机的示意图;
图5是示出根据本发明实施例的图像二值化处理装置的逻辑框图;
图6是示出根据本发明实施例的电子设备的结构示意图。
具体实施方式
下面结合附图详细描述本发明实施例的示例性实施例。
在本申请中,“多个”指两组或两组以上,“至少一个”指一个、两组或两组以上。对于本申请中提及的任一部件、数据或结构,在没有明确限定一个的情况下,可理解为一个或多个。
本发明的总体发明构思是,提供一种通过硬件实现的图像二值化处理方法,从而快速地计算得到用于图像二值化处理的分割像素阈值。具体地,通过使用已有的硬件模块执行大津算法的运算,以获得该分割像素阈值。
图1是示出根据本发明一些实施例的图像二值化处理方法的流程图。
参照图1,在RAM初始化步骤,将用于记录各个像素值的像素个数的随机存取存储器(RAM)初始化为零,在此称为pixcnt_mem。PIXCNT_MEM包含256个数据存储单元,每个数据存储单元在PIXCNT_MEM中的地址对应于其记录像素个数的像素值。
通常,基于色彩的RGB制式的图像中的像素具有0~255的像素值。因此,这里采用具有256个数据存储单元的PIXCNT_MEM来记录待处理图像中包含的各个像素值的像素个数,以快速地进行读取和写入。其中,PIXCNT_MEM中的每个数据存储单元在PIXCNT_MEM中的内部(逻辑)地址与其记录的像素个数的像素值对应。例如,在PIXCNT_MEM中的内部(逻辑)地址为0的数据存储单元用于记录像素值为0的像素个数,在PIXCNT_MEM中的内部(逻辑)地址为8的数据存储单元用于记录像素值为8的像素个数,等等。
在该步骤,将整个PIXCNT_MEM初始化为零,以在后续步骤中根据读入的像素值进行相应的数据存储单元的写入。
在图像读取步骤,通过直接内存存取(DMA)单元,读取待处理图像,每读入一个或多个像素值,将所述PIXCNT_MEM中读入的像素值对应的数据存储单元中的像素个数值累积加1,直至完成待处理图像的读取为止。
这里,采用DMA来进行待处理图像的读取操作,以避免占用处理器的运算资源。其中,可每次读入一个或多个像素值,以控制读取的次数。
例如,可将PIXCNT_MEM的数据读入宽度设置为2n,n∈[0,7],即1~128个像素值。可将PIXCNT_MEM的寻址位宽设置为4、8或16等,从而在对PIXCNT_MEM的数据存储单元进行写入时,可快速地进行寻址和像素个数值的累加。
通过批量地进行像素值的读入和相应的数据存储单元中的像素个数值累加,直到完成待处理图像的全部像素值读取为止,在PIXCNT_MEM中写入待处理图像中包含的各个像素值的像素个数。
在总乘积和值计算步骤,通过至少两组第一乘法器,并行地计算其对应分区内的各个所述像素值与其像素个数值的乘积和值,并且将各个乘积和值相加得到总乘积和值GSUM,其中,每组所述第一乘法器对应于所述PIXCNT_MEM的一个分区。
在该步骤,采用至少两组第一乘法器来并行地进行各个像素值与其对应的像素个数的乘积和值的计算。相应地,将PIXCNT_MEM划分为与第一乘法器的个数对应的分区,每组第一乘法器负责对其对应分区内的各个像素值与其对应的像素个数的乘积和值的累积计算。例如,可采用两组或四组乘法器并行地进行两个分区或四个分区的各个像素值与其对应的像素个数的乘积和值的累积到各自的触发器中。
在获得各个分区的像素值与其对应的像素个数的乘积和值之后,将各个触发器中的乘积和值进行相加,获得待处理图像的像素值的总乘积和值GSUM。
根据本发明的可选实施方式,采用两组第一乘法器。相应地,在该步骤,PIXCNT_MEM的内部地址从0开始累加到127,第一组第一乘法器从地址0开始,将各个地址对应的像素值与其像素个数进行相乘累加,累加到地址127为止。同时,将PIXCNT_MEM的累加内部地址的反码作为输入,第二组第一乘法器从地址255开始,并行地将各个地址对应的像素值与其像素个数进行相乘累加,累加到地址128为止。由此,并行地计算得到两个分区的乘积和值。此后,再将第一组第一乘法器累加得到的乘积和值与第二组第一乘法器累加得到的乘积和值相加,获得所述总乘积和值GSUM。由此,通过采用两组第一乘法器并行地执行相乘累加的计算,能够快速计算得到待处理图像的像素值的总乘积和值GSUM,以用于以下类间方差值的计算。
图2是示出根据本发明另一些实施例的用于求取总乘积和值计算步骤的时序的示意图。在图2中,pixcnt_mem_*信号为pixcnt_mem接口控制信号;mult_a开头信号为乘法模块A的信号;mult_b开头信号为乘法模块B的信号;GSUM为乘积和DFF。A、B每次得到结果会累计到GSUM。
此后,在类间方差计算步骤,通过至少三个第二乘法器以及除法器并根据所述总乘积和值GSUM,迭代地计算对应于各个像素值的类间方差值Gi,并且通过比较器将计算得到的类间方差值Gi与已有的最大类间方差值Gmax进行比较,获得当前的最大类间方差值Gmax,i∈[0,255]。
具体地,根据大津算法,可通过以下公式迭代地计算获得对应于像素值i的类间方差值Gi:
其中,S为待处理图像的总像素个数,Numi为像素值i对应的像素个数,GSumi为从0像素值与其对应的像素个数到像素值i与其对应的像素个数的乘积和值。
其中,可通过一个第二乘法器计算从0像素值与其对应的像素个数到像素值i与其对应的像素个数的乘积和值GSumi,通过至少两个第二乘法器并行地执行乘法计算GSumi×S、GSUM×Numi、Numi×(S-Numi)以及(GSumi×S-GSUM×Numi)2。
根据本发明的一种可选实施方式,采用三个第二乘法器。其中,通过第一个第二乘法器计算从0像素值与其对应的像素个数到像素值i与其对应的像素个数的乘积和值GSumi,通过第二个第二乘法器和第三个第二乘法器并行地执行各两次乘法计算GSumi×S、GSUM×Numi、Numi×(S-Numi)以及(GSumi×S-GSUM×Numi)2。
在首次迭代中计算出对应于像素值为0的类间方差值G0后,将G0作为当前的最大类间方差值Gmax。此后,在每次迭代中计算出对应于像素值i的类间方差值Gi后,通过比较器将计算得到的类间方差值Gi与已有的最大类间方差值Gmax进行比较,获得当前的最大类间方差值Gmax。
在通过上述迭代处理地计算对应于从像素值0到像素值255的各个类间方差值Gi以及与已有最大类间方差值Gmax进行比较以后,获得用于待处理图像的大津二值化处理的分割像素阈值。由此,通过在每次迭代中并行地执行所需的乘法计算,能够快速地计算得到用于大津二值化处理的分割像素阈值。
需要指出,这里,仅根据用途将使用的乘法器划分为第一乘法器和第二乘法器。第一乘法器和第二乘法器可以是相同类型的乘法器,也可以是不同类型的乘法器。此外,乘法器可重复使用,例如,前述的两组第一乘法器可分别用作所述第二个第二乘法器和第三个第二乘法器。
在阈值确定步骤,将经过迭代计算和比较获得的最大类间方差值Gmax确定为图像二值化的阈值。
此后,可根据该作为图像二值化的阈值的最大类间方差值Gmax,对所述待处理图像进行二值化处理。
通过在前述各个步骤中,使用已有的硬件模块来执行相应的操作处理,并且并行地执行部分运算处理,能够快速地计算得到用于待处理图像二值化的阈值。在实际应用中,也能够相应地降低计算系统的整体功耗。此外,能够在小型微设备中实现图像处理,同时在处理性能上能够满足高品质图像的处理效率要求。
为了进一步地提高运算速率和效率,根据本发明的另一些实施例,使用嵌套式状态机来实现该图像二值化处理方法。例如,可通过主状态机执行前述图像二值化处理方法的各个步骤,通过子状态机来实现其中较为复杂的类间方差计算步骤。
以下将参照图3和图4描述通过嵌套式状态机执行本发明实施例提出的图像二值化处理方法的处理。
图3是示出根据本发明另一些实施例的图像二值化处理方法的主状态机的示意图。图4是示出根据本发明又一些实施例的用于执行类间方差计算的子状态机的示意图。
参照图3,在OTSU_IDLE初始状态,当进行使能start之后,跳转到OTSU_INIT状态,以确定PIXCNT_MEM是否完成初始化(RAM初始化步骤)。
在确定初始化完成后,跳转到OTSU_READ状态。在OTSU_READ状态,通过DMA单元读取待处理图像,然后跳转到OTSU_HIST状态,进行像素值判断,并写入PIXCNT_MEM保存。然后,跳转到OTSU_HOLD状态,判断是否可继续读取图像值。OTSU_READ、OTSU_HIST和OTSU_HOLD循环执行直到图像读取完成为止,完成图像读取步骤。
此后,跳转到OTSU_GSUM状态。在OTSU_GSUM状态,通过至少两组第一乘法器,并行地计算其对应分区内的各个所述像素值与其像素个数值的乘积和值,并且将各个乘积和值相加得到总乘积和值GSUM(总乘积和值计算步骤)。
在完成总乘积和值GSUM的计算之后,跳转到OTSU_TRAV状态。在OTSU_TRAV状态,通过如图4所示的子状态机执行OTSU_TRAV状态中类间方差的计算。
在OTSU_TRAV状态,根据前述类间方差值Gi的计算公式,需进行四次乘法和一次除法的运算。参照图4,在TRAV_MULT3子状态,先执行循环乘法得到对应于像素值0的GSum0。此后,可使用两个乘法器,并行地执行两次乘法运算得到四个乘法结果(TRAV_MULT1和TRAV_MULT2),再通过除法器进行除法运算得到最终的类间方差计算结果Gi。此后,通过比较器将计算得到的类间方差值Gi与已有的最大类间方差值Gmax进行比较,获得当前的最大类间方差值Gmax。
在完成对应于从像素值0到像素值255的类间方差值Gi以及比较的迭代运算后,跳转到OTSU_THVA状态,将最大类间方差值Gmax输出为图像二值化的阈值。
通过使用嵌套状态机执行该图像二值化处理方法,并且在相应的步骤/状态,并行地执行算法中相应的操作,进一步地提高了用于计算待处理图像二值化的阈值的速率和效率。
图5是示出根据本发明实施例的图像二值化处理装置的逻辑框图。
参照图5,根据本发明实施例的图像二值化处理装置500包括:
RAM初始化模块510,用于将用于记录各个像素值的像素个数的随机存取存储器(RAM)初始化为零,所述RAM包含256个数据存储单元,每个数据存储单元在RAM中的地址对应于其记录像素个数的像素值;
图像读取模块520,用于通过直接内存存取(DMA)单元,读取待处理图像,每读入一个或多个像素值,将所述RAM中该像素值对应的数据存储单元中的像素个数值累积加1,直至完成待处理图像的读取为止;
总乘积和值计算模块530,用于通过至少两组第一乘法器,并行地计算其对应分区内的各个所述像素值与其像素个数值的乘积和值,并且将各个乘积和值相加得到总乘积和值GSUM,其中,每组所述第一乘法器对应于所述RAM的一个分区;
类间方差计算模块540,用于通过至少三个第二乘法器以及除法器并根据所述总乘积和值GSUM,迭代地计算对应于各个像素值的类间方差值Gi,并且通过比较器将计算得到的类间方差值Gi与已有的最大类间方差值Gmax进行比较,获得当前的最大类间方差值Gmax,i∈[0,255];
阈值确定模块550,用于将经过迭代计算和比较获得的最大类间方差值Gmax确定为图像二值化的阈值。
可选地,所述图像二值化处理装置500实现为主状态机,类间方差计算模块540实现为子状态机。
可选地,所述至少两组第一乘法器为两组。相应地,第一组第一乘法器用于从地址0开始,将各个地址对应的像素值与其像素个数进行相乘累加,累加到地址127为止;第二组第一乘法器用于从地址255开始,并行地将各个地址对应的像素值与其像素个数进行相乘累加,累加到地址128为止;所述总乘积和值计算模块用于将第一组第一乘法器累加得到的乘积和值与第二组第一乘法器累加得到的乘积和值相加,获得所述总乘积和值GSUM。
可选地,所述类间方差计算模块用于通过以下公式迭代地计算获得对应于像素值i的类间方差值Gi:
其中,S为待处理图像的总像素个数,Numi为像素值i对应的像素个数,GSumi为从0像素值与其对应的像素个数到像素值i与其对应的像素个数的乘积和值。
可选地,所述至少三个第二乘法器为三个。相应地,所述类间方差计算模块用于通过第一个第二乘法器计算GSumi,通过第二个第二乘法器和第三个第二乘法器并行地执行各两次乘法计算GSumi×S、GSUM×Numi、Numi×(S-Numi)以及(GSumi×S-GSUM×Numi)2。
根据本发明实施例的图像二值化处理装置500具有前述任一图像处理方法实现的类似有益效果,在此不予赘述。
图6是示出根据本发明实施例的电子设备的结构示意图。
本发明实施例还提供了一种电子设备,例如可以是移动终端、个人计算机(PC)、平板电脑、服务器等。下面参考图6,其示出了适于用来实现本发明实施例的终端设备或服务器的电子设备600的结构示意图。
如图6所示,电子设备600包括一个或多个处理器、通信元件等,所述一个或多个处理器例如:一个或多个中央处理单元(CPU)601,和/或一个或多个图像处理器(GPU)613等,处理器可以根据存储在只读存储器(ROM)602中的可执行指令或者从第一存储部分608加载到随机访问存储器(RAM)603中的可执行指令而执行各种适当的动作和处理。通信元件包括通信组件612和通信接口609。其中,通信组件612可包括但不限于网卡,所述网卡可包括但不限于IB(Infiniband)网卡,通信接口609包括诸如LAN卡、调制解调器等的网络接口卡的通信接口,通信接口609经由诸如因特网的网络执行通信处理。
处理器可与只读存储器602和/或随机访问存储器630中通信以执行可执行指令,通过总线604与通信组件612相连、并经通信组件612与其他目标设备通信,从而完成本发明实施例提供的任一项方法对应的操作,例如,将用于记录各个像素值的像素个数的随机存取存储器(RAM)初始化为零,所述RAM包含256个数据存储单元,每个数据存储单元在RAM中的地址对应于其记录像素个数的像素值;通过直接内存存取(DMA)单元,读取待处理图像,每读入一个或多个像素值,将所述RAM中该像素值对应的数据存储单元中的像素个数值累积加1,直至完成待处理图像的读取为止;通过至少两组第一乘法器,并行地计算其对应分区内的各个所述像素值与其像素个数值的乘积和值,并且将各个乘积和值相加得到总乘积和值GSUM,其中,每组所述第一乘法器对应于所述RAM的一个分区;通过至少三个第二乘法器以及除法器并根据所述总乘积和值GSUM,迭代地计算对应于各个像素值的类间方差值Gi,并且通过比较器将计算得到的类间方差值Gi与已有的最大类间方差值Gmax进行比较,获得当前的最大类间方差值Gmax,i∈[0,255];将经过迭代计算和比较获得的最大类间方差值Gmax作为图像二值化的阈值。
此外,在RAM 603中,还可存储有装置操作所需的各种程序和数据。CPU 601、ROM602以及RAM 603通过总线604彼此相连。在有RAM 603的情况下,ROM 602为可选模块。RAM603存储可执行指令,或在运行时向ROM 602中写入可执行指令,可执行指令使处理器601执行上述通信方法对应的操作。输入/输出(I/O)接口605也连接至总线604。通信组件612可以集成设置,也可以设置为具有多个子模块(例如多个IB网卡),并在总线链接上。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信接口609。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
需要说明的是,如图6所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图6的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如GPU和CPU可分离设置或者可将GPU集成在CPU上,通信组件612可分离设置,也可集成设置在CPU或GPU上,等等。这些可替换的实施方式均落入本发明的保护范围。
特别地,根据本发明实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码,程序代码可包括对应执行本发明实施例提供的方法步骤对应的指令,例如,用于将用于记录各个像素值的像素个数的随机存取存储器(RAM)初始化为零的指令,所述RAM包含256个数据存储单元,每个数据存储单元在RAM中的地址对应于其记录像素个数的像素值;用于通过直接内存存取(DMA)单元,读取待处理图像,每读入一个或多个像素值,将所述RAM中该像素值对应的数据存储单元中的像素个数值累积加1,直至完成待处理图像的读取为止的指令;用于通过至少两组第一乘法器,并行地计算其对应分区内的各个所述像素值与其像素个数值的乘积和值,并且将各个乘积和值相加得到总乘积和值GSUM的指令,其中,每组所述第一乘法器对应于所述RAM的一个分区;用于通过至少三个第二乘法器以及除法器并根据所述总乘积和值GSUM,迭代地计算对应于各个像素值的类间方差值Gi,并且通过比较器将计算得到的类间方差值Gi与已有的最大类间方差值Gmax进行比较,获得当前的最大类间方差值Gmax的指令,i∈[0,255];用于将经过迭代计算和比较获得的最大类间方差值Gmax作为图像二值化的阈值的指令。在这样的实施例中,该计算机程序可以通过通信元件从网络上被下载和安装,和/或从第一可拆卸介质611被安装。在该计算机程序被第一中央处理单元(CPU)601执行时,执行本发明实施例的方法中限定的上述功能。
需要指出,根据实施的需要,可将本申请中描述的各个部件/步骤拆分为更多部件/步骤,也可将两组或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
可能以许多方式来实现本发明的方法和装置、设备。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明实施例的方法和装置、设备。用于方法的步骤的上述顺序仅是为了进行说明,本发明实施例的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明实施例的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明实施例的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (11)
1.一种通过硬件实现的图像二值化处理方法,包括:
RAM初始化步骤:将用于记录各个像素值的像素个数的随机存取存储器RAM初始化为零,所述RAM包含256个数据存储单元,每个数据存储单元在RAM中的地址对应于其记录像素个数的像素值;
图像读取步骤:通过直接内存存取(DMA)单元,读取待处理图像,每读入一个或多个像素值,将所述RAM中该像素值对应的数据存储单元中的像素个数值累积加1,直至完成待处理图像的读取为止;
总乘积和值计算步骤:通过至少两组第一乘法器,并行地计算其对应分区内的各个所述像素值与其像素个数值的乘积和值,并且将各个乘积和值相加得到总乘积和值GSUM,其中,每组所述第一乘法器对应于所述RAM的一个分区;
类间方差计算步骤:通过至少三个第二乘法器以及除法器并根据所述总乘积和值GSUM,迭代地计算对应于各个像素值的类间方差值Gi,并且通过比较器将计算得到的类间方差值Gi与已有的最大类间方差值Gmax进行比较,获得当前的最大类间方差值Gmax,;
阈值确定步骤:将经过迭代计算和比较获得的最大类间方差值Gmax作为图像二值化的阈值,
其中,通过主状态机执行RAM初始化步骤、图像读取步骤、总乘积和值计算步骤、类间方差计算步骤和阈值确定步骤,通过子状态机执行所述类间方差计算步骤中的处理。
3.根据权利要求1~2中任一项所述的方法,其中,所述至少两组第一乘法器为两组,
在所述总乘积和值计算步骤,第一组第一乘法器从地址0开始,将各个地址对应的像素值与其像素个数进行相乘累加,累加到地址127为止,第二组第一乘法器从地址255开始,并行地将各个地址对应的像素值与其像素个数进行相乘累加,累加到地址128为止,再将第一组第一乘法器累加得到的乘积和值与第二组第一乘法器累加得到的乘积和值相加,获得所述总乘积和值GSUM。
6.一种通过硬件实现的图像二值化处理装置,包括:
RAM初始化模块,用于将用于记录各个像素值的像素个数的随机存取存储器RAM初始化为零,所述RAM包含256个数据存储单元,每个数据存储单元在RAM中的地址对应于其记录像素个数的像素值;
图像读取模块,用于通过直接内存存取(DMA)单元,读取待处理图像,每读入一个或多个像素值,将所述RAM中该像素值对应的数据存储单元中的像素个数值累积加1,直至完成待处理图像的读取为止;
总乘积和值计算模块,用于通过至少两组第一乘法器,并行地计算其对应分区内的各个所述像素值与其像素个数值的乘积和值,并且将各个乘积和值相加得到总乘积和值GSUM,其中,每组所述第一乘法器对应于所述RAM的一个分区;
类间方差计算模块,用于通过至少三个第二乘法器以及除法器并根据所述总乘积和值GSUM,迭代地计算对应于各个像素值的类间方差值Gi,并且通过比较器将计算得到的类间方差值Gi与已有的最大类间方差值Gmax进行比较,获得当前的最大类间方差值Gmax,;
阈值确定模块,用于将经过迭代计算和比较获得的最大类间方差值Gmax确定为图像二值化的阈值,
其中,通过主状态机控制RAM初始化模块、图像读取模块、总乘积和值计算模块、类间方差计算模块和阈值确定模块的操作,通过子状态机控制所述类间方差计算模块内的处理。
7.根据权利要求6所述的装置,其中,所述至少两组第一乘法器为两组,
第一组第一乘法器用于从地址0开始,将各个地址对应的像素值与其像素个数进行相乘累加,累加到地址127为止,
第二组第一乘法器用于从地址255开始,并行地将各个地址对应的像素值与其像素个数进行相乘累加,累加到地址128为止,
所述总乘积和值计算模块用于将第一组第一乘法器累加得到的乘积和值与第二组第一乘法器累加得到的乘积和值相加,获得所述总乘积和值GSUM。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其中,所述程序指令被处理器执行时实现权利要求1~5中任一项所述图像二值化处理方法的模块。
11.一种电子设备,包括:处理器、存储器、通信元件和通信总线,所述处理器、所述存储器和所述通信元件通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1~5中任一项所述图像二值化处理方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910122440.7A CN109961450B (zh) | 2019-02-19 | 2019-02-19 | 图像二值化处理方法、装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910122440.7A CN109961450B (zh) | 2019-02-19 | 2019-02-19 | 图像二值化处理方法、装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109961450A CN109961450A (zh) | 2019-07-02 |
CN109961450B true CN109961450B (zh) | 2021-08-24 |
Family
ID=67023557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910122440.7A Active CN109961450B (zh) | 2019-02-19 | 2019-02-19 | 图像二值化处理方法、装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109961450B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956421A (en) * | 1996-02-28 | 1999-09-21 | Canon Kabushiki Kaisha | Image processing method and apparatus for determining a binarization threshold value used for binarizing a multi-valued image and performing binarization processing |
CN101064010A (zh) * | 2006-12-28 | 2007-10-31 | 华中科技大学 | 红外小目标检测的图像预处理装置 |
CN108764466A (zh) * | 2018-03-07 | 2018-11-06 | 东南大学 | 基于现场可编程门阵列的卷积神经网络硬件及其加速方法 |
CN109076167A (zh) * | 2016-06-17 | 2018-12-21 | 索尼公司 | 图像处理器、摄像装置和图像处理系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10229492B2 (en) * | 2015-06-17 | 2019-03-12 | Stoecker & Associates, LLC | Detection of borders of benign and malignant lesions including melanoma and basal cell carcinoma using a geodesic active contour (GAC) technique |
-
2019
- 2019-02-19 CN CN201910122440.7A patent/CN109961450B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956421A (en) * | 1996-02-28 | 1999-09-21 | Canon Kabushiki Kaisha | Image processing method and apparatus for determining a binarization threshold value used for binarizing a multi-valued image and performing binarization processing |
CN101064010A (zh) * | 2006-12-28 | 2007-10-31 | 华中科技大学 | 红外小目标检测的图像预处理装置 |
CN109076167A (zh) * | 2016-06-17 | 2018-12-21 | 索尼公司 | 图像处理器、摄像装置和图像处理系统 |
CN108764466A (zh) * | 2018-03-07 | 2018-11-06 | 东南大学 | 基于现场可编程门阵列的卷积神经网络硬件及其加速方法 |
Non-Patent Citations (2)
Title |
---|
《基于OTSU 算法的FPGA实时绕距测量系统》;林宜丙等;《电子技术应用》;20150731;第41卷(第7期);摘要,第1.2节,第2.3节,第2.3.1节,第2.3.2节第1段 * |
《最大类间方差算法在运动检测系统中的应用》;江亲瑜等;《计算机应用》;20110131;第31卷(第1期);第260-262页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109961450A (zh) | 2019-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Possa et al. | A multi-resolution FPGA-based architecture for real-time edge and corner detection | |
Wang et al. | Workload analysis and efficient OpenCL-based implementation of SIFT algorithm on a smartphone | |
Li et al. | Box-supervised instance segmentation with level set evolution | |
CN110909791B (zh) | 一种相似图像识别方法及计算设备 | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
US11915058B2 (en) | Video processing method and device, electronic equipment and storage medium | |
CN109885407B (zh) | 数据处理方法和装置、电子设备、存储介质 | |
WO2018214769A1 (zh) | 图像处理方法、装置和系统 | |
EP3665614A1 (en) | Extraction of spatial-temporal features from a video | |
US20160180187A1 (en) | Method of generating descriptor for interest point in image and apparatus implementing the same | |
CN103109306B (zh) | 用于低功率架构的亮度增强方法、系统和设备 | |
CN111066058B (zh) | 用于低功率实时对象检测的系统和方法 | |
US20230196113A1 (en) | Neural network training under memory restraint | |
US11435941B1 (en) | Matrix transpose hardware acceleration | |
CN113918233A (zh) | 一种ai芯片控制方法、电子设备及ai芯片 | |
CN109961450B (zh) | 图像二值化处理方法、装置、存储介质和电子设备 | |
Park et al. | A vision processor with a unified interest-point detection and matching hardware for accelerating a stereo-matching algorithm | |
Eusse et al. | A flexible ASIP architecture for connected components labeling in embedded vision applications | |
Georgantzoglou et al. | Image Processing with MATLAB and GPU | |
Claus et al. | High performance FPGA based optical flow calculation using the census transformation | |
CN111723917B (zh) | 运算方法、装置及相关产品 | |
US11354130B1 (en) | Efficient race-condition detection | |
Sugano et al. | Parallel implementation of morphological processing on cell/BE with OpenCV interface | |
CN108765259B (zh) | 一种基于gpu的高光谱图像ratgp和rosp并行优化方法 | |
CN110428453B (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 |