一种halftone阈值矩阵的生成和装置的制作方法

文档序号:12496448阅读:362来源:国知局
一种halftone阈值矩阵的生成和装置的制作方法

本发明涉及图像处理技术领域,尤其涉及一种halftone阈值矩阵的生成和装置。



背景技术:

在对图像数据进行半色调halftone处理时,是将图像数据中的各个像素点的像素值分别与指定阈值进行比较,在图像数据中的各个像素点经过halftone处理后,当像素点的像素值大于或者等于该指定阈值时,则将该像素点的像素值设定为“1”,当该像素点的像素值小于该指定阈值时,则将该像素点的像素值设定为“0”。

在现有技术中,在对图像数据进行halftone处理时,需要对该图像数据设计一个halftone阈值矩阵,并且,往往该halftone阈值矩阵中阈值的个数会小于图像数据中的像素点的个数,在设计该halftone阈值矩阵时,需要根据该图像数据的处理需求,为该图像数据设计一个具体有针对性的halftone阈值矩阵,该halftone阈值矩阵中包含多个阈值,利用这些阈值可以对图像数据中的多个像素点同时进行halftone处理,然后将图像数据中的像素点的像素值与halftone阈值矩阵中的阈值比较大小,即利用设计的halftone阈值矩阵可以同时对图像数据中的一部分数据进行halftone处理。

在针对该图像数据设计该halftone阈值矩阵时,需要对该halftone阈值矩阵不断调试,以获得一个能够满足实际halftone处理需求的halftone阈值矩阵。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:

在现有技术中,在对该halftone阈值矩阵设计并不断调试时,过程较为繁琐,设计效率较低。



技术实现要素:

有鉴于此,本发明实施例提供了一种halftone阈值矩阵的生成方法和装置,用以解决现有技术中在对该halftone阈值矩阵设计并不断调试时,过程较为繁琐,设计效率较低的问题。

第一方面,本发明实施例提供了一种halftone阈值矩阵的生成方法,所述方法包括:

获取用户输入的halftone阈值矩阵参数;

根据所述halftone阈值矩阵参数,生成阈值填充索引表;

根据所述阈值填充索引表,生成包含至少一个阈值的halftone阈值矩阵。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述halftone阈值矩阵参数包括:单元网点角度、单元网点形状、单元网点频率和待处理图像的位深。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据所述halftone阈值矩阵参数,生成阈值填充索引表,包括:

根据所述单元网点频率,生成单元网点,其中,所述单元网点携带有至少一个阈值填充单元;

根据所述单元网点形状,确定像素对应的阈值填充单元在所述单元网点中的位置;

根据像素对应的阈值填充单元在所述单元网点中的位置,在所述单元网点中对应位置处添加指定标识;

根据添加有指定标识的单元网点、所述单元网点频率、所述单元网点形状、所述待处理图像的位深和所述单元网点角度,生成所述阈值填充索引表。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据添加有指定标识的单元网点、所述单元网点频率、所述单元网点形状、所述待处理图像的位深和所述单元网点角度,生成所述阈值填充索引表,包括:

根据所述单元网点频率和所述单元网点形状,确定添加有指定标识的单元网点中添加有指定标识的阈值填充单元的个数;

根据所述待处理图像的位深和添加有指定标识的单元网点中添加有指定标识的阈值填充单元的个数,按照预设取值规则,确定添加有指定标识的单元网点的个数,其中,添加有指定标识的单元网点个数的取值为正整数;

根据添加有指定标识的单元网点的个数和所述单元网点角度,以一个添加有指定标识的单元网点为基准,按照预设拼接排列方式,对对应个数的添加有指定标识的单元网点进行两两拼接排列,确定对应个数的添加有指定标识的单元网点的拼接排列方式;

根据对应个数的添加有指定标识的单元网点的拼接排列方式,对添加有指定标识的单元网点进行拼接排列,生成所述阈值填充索引表。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述对对应个数的添加有指定标识的单元网点进行两两拼接排列,包括:

利用如下公式对对应个数的添加有指定标识的单元网点进行两两拼接排列:

Y_Offset=tan(Angle)*X_Offset;

其中,Y_Offset为两个相邻的添加有指定标识的单元网点中一个添加有指定标识的单元网点的中心像素点到另一个添加有指定标识的单元网点的中心像素点在垂直方向上的偏移量;X_Offset为两个相邻的添加有指定标识的单元网点中一个添加有指定标识的单元网点的中心像素点到另一个添加有指定标识的单元网点的中心像素点在水平方向上的偏移量,其中,X_Offset的取值与阈值填充单元的列数相等;Angle为所述单元网点角度。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据所述阈值填充索引表,生成包含至少一个阈值的halftone阈值矩阵,包括:

获取所述阈值填充索引表中阈值填充单元的个数N,所述N的取值范围为正整数;

判断N是否等于指定数值,其中,所述指定数值为2^bit,bit为所述待处理图像的位深;

若N等于所述指定数值,确定所述阈值填充索引表的各阈值填充单元中填充的阈值的范围是大于或者等于0,小于或者等于N-1,并根据预设填充顺序,在所述阈值填充索引表的各阈值填充单元中添加阈值,以生成包含至少一个阈值的halftone阈值矩阵;

若N不等于所述指定数值,确定所述阈值填充索引表的各阈值填充单元中填充的阈值的范围是大于或者等于0,小于或者等于w*N,并根据预设填充顺序,在所述阈值填充索引表的各阈值填充单元中添加阈值,其中,w=(2^bit-1)/N,以生成包含至少一个阈值的halftone阈值矩阵;

其中,添加有指定标识的阈值填充单元中填充的阈值小于未添加指定标识的阈值填充单元中填充的阈值,且所述阈值填充索引表的各阈值填充单元中添加阈值互不相同。

上述技术方案中的一个技术方案具有如下有益效果:在本发明实施例中,由于在获取到用户输入的halftone阈值矩阵参数后,可以根据该halftone阈值矩阵参数,生成阈值填充索引表,并根据该阈值填充索引表,生成包含至少一个阈值的halftone阈值矩阵,因此在本发明实施例中可以根据用户输入的halftone阈值矩阵参数自动生成halftone阈值矩阵,省去了因手动对该halftone阈值矩阵设计并不断调试时的繁琐过程,提高了设计效率。

第二方面,本发明实施例提供了一种halftone阈值矩阵的生成装置,所述装置包括:

获取单元,用于获取用户输入的halftone阈值矩阵参数;

索引表生成单元,用于根据所述halftone阈值矩阵参数,生成阈值填充索引表;

阈值矩阵生成单元,用于根据所述阈值填充索引表,生成包含至少一个阈值的halftone阈值矩阵。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述halftone阈值矩阵参数包括:单元网点角度、单元网点形状、单元网点频率和待处理图像的位深。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述索引表生成单元用于根据所述halftone阈值矩阵参数,生成阈值填充索引表时,具体用于:

根据所述单元网点频率,生成单元网点,其中,所述单元网点携带有至少一个阈值填充单元;

根据所述单元网点形状,确定像素对应的阈值填充单元在所述单元网点中的位置;

根据像素对应的阈值填充单元在所述单元网点中的位置,在所述单元网点中对应位置处添加指定标识;

根据添加有指定标识的单元网点、所述单元网点频率、所述待处理图像的位深、所述待处理图像的位深和所述单元网点角度,生成所述阈值填充索引表。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述索引表生成单元用于根据添加有指定标识的单元网点、所述单元网点频率、所述待处理图像的位深、所述待处理图像的位深和所述单元网点角度,生成所述阈值填充索引表时,具体用于:

根据所述单元网点频率和所述单元网点形状,确定添加有指定标识的单元网点中添加有指定标识的阈值填充单元的个数;

根据所述待处理图像的位深和添加有指定标识的单元网点中添加有指定标识的阈值填充单元的个数,按照预设取值规则,确定添加有指定标识的单元网点的个数,其中,添加有指定标识的单元网点个数的取值为正整数;

根据添加有指定标识的单元网点的个数和所述单元网点角度,以一个添加有指定标识的单元网点为基准,按照预设拼接排列方式,对对应个数的添加有指定标识的单元网点进行两两拼接排列,确定对应个数的添加有指定标识的单元网点的拼接排列方式;

根据对应个数的添加有指定标识的单元网点的拼接排列方式,对添加有指定标识的单元网点进行拼接排列,生成所述阈值填充索引表。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述索引表生成单元用于对对应个数的添加有指定标识的单元网点进行两两拼接排列时,具体用于:

利用如下公式对对应个数的添加有指定标识的单元网点进行两两拼接排列:

Y_Offset=tan(Angle)*X_Offset;

其中,Y_Offset为两个相邻的添加有指定标识的单元网点中一个添加有指定标识的单元网点的中心像素点到另一个添加有指定标识的单元网点的中心像素点在垂直方向上的偏移量;X_Offset为两个相邻的添加有指定标识的单元网点中一个添加有指定标识的单元网点的中心像素点到另一个添加有指定标识的单元网点的中心像素点在水平方向上的偏移量,其中,X_Offset的取值与阈值填充单元的列数相等;Angle为所述单元网点角度。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述阈值矩阵生成单元用于根据所述阈值填充索引表,生成包含至少一个阈值的halftone阈值矩阵时,具体用于:

获取所述阈值填充索引表中阈值填充单元的个数N,所述N的取值范围为正整数;

判断N是否等于指定数值,其中,所述指定数值为2^bit,bit为所述待处理图像的位深;

若N等于所述指定数值,确定所述阈值填充索引表的各阈值填充单元中填充的阈值的范围是大于或者等于0,小于或者等于N-1,并根据预设填充顺序,在所述阈值填充索引表的各阈值填充单元中添加阈值,以生成包含至少一个阈值的halftone阈值矩阵;

若N不等于所述指定数值,确定所述阈值填充索引表的各阈值填充单元中填充的阈值的范围是大于或者等于0,小于或者等于w*N,并根据预设填充顺序,在所述阈值填充索引表的各阈值填充单元中添加阈值,其中,w=(2^bit-1)/N,以生成包含至少一个阈值的halftone阈值矩阵;

其中,添加有指定标识的阈值填充单元中填充的阈值小于未添加指定标识的阈值填充单元中填充的阈值,且所述阈值填充索引表的各阈值填充单元中添加阈值互不相同。

上述技术方案中的一个技术方案具有如下有益效果:在本发明实施例中,由于在获取到用户输入的halftone阈值矩阵参数后,可以根据该halftone阈值矩阵参数,生成阈值填充索引表,并根据该阈值填充索引表,生成包含至少一个阈值的halftone阈值矩阵,因此在本发明实施例中可以根据用户输入的halftone阈值矩阵参数自动生成halftone阈值矩阵,省去了因手动对该halftone阈值矩阵设计并不断调试时的繁琐过程,提高了设计效率。

【附图说明】

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1是本发明实施例提供的一种halftone阈值矩阵的生成方法的流程示意图;

图2是本发明实施例提供的一种单元网点的示意图;

图3是本发明实施例提供的一种单元网点的单元网点形状为圆形的示意图;

图4是本发明实施例提供的一种单元网点的单元网点形状为菱形的示意图;

图5是本发明实施例提供的一种单元网点的单元网点形状为正方形的示意图;

图6是本发明实施例提供的一种单元网点的单元网点形状为线性的示意图;

图7是本发明实施例提供的一种两个相邻单元网点的拼接示意图;

图8是本发明实施例提供的一种阈值填充索引表的示意图;

图9是本发明实施例提供的另一种阈值填充索引表的示意图;

图10是本发明实施例提供的另一种阈值填充索引表的示意图;

图11是本发明实施例提供的另一种阈值填充索引表的示意图;

图12是本发明实施例提供的一种单元网点中阈值填充单元的编号的示意图;

图13是本发明实施例提供的另一种单元网点中阈值填充单元的编号的示意图;

图14是本发明实施例提供的另一种单元网点中阈值填充单元的编号的示意图;

图15是本发明实施例提供的另一种单元网点中阈值填充单元的编号的示意图;

图16是本发明实施例提供的另一种单元网点中阈值填充单元的编号的示意图;

图17是本发明实施例提供的另一种单元网点中阈值填充单元的编号的示意图;

图18是本发明实施例提供的一种halftone阈值矩阵的示意图;

图19是本发明实施例提供的一种halftone阈值矩阵的生成装置的结构示意图。

【具体实施方式】

为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

实施例一

本发明实施例提供了一种halftone阈值矩阵的生成方法,如图1所示,halftone阈值矩阵的生成方法可以包括以下步骤:

101、获取用户输入的halftone阈值矩阵参数。

在一个具体的实施方式中,所述halftone阈值矩阵参数包括:单元网点角度、单元网点形状、单元网点频率和待处理图像的位深。

在一个具体的实施方式中,所述单元网点角度的取值范围为大于或者等于0°,且小于或者等于90°。

具体的,用户可以通过参数输入界面或者直接在程序代码中输入用于生成halftone阈值矩阵的halftone阈值矩阵参数。根据halftone阈值矩阵参数可以生成halftone阈值矩阵的最小单元,即单元网点,以及,根据halftone阈值矩阵参数可以确定单元网点之间的拼接排列方式。

一个单元网点包括至少一个阈值填充单元,每个阈值填充单元中用于填充阈值,在进行halftone处理时,可以使用阈值填充单元中填充的一个阈值与待处理图像数据中的一个像素点的像素值进行比较;单元网点角度用于决定单元网点之间的拼接排列方式,即拼接排列的角度;单元网点形状用于决定单元网点内的阈值分布,例如,单元网点内的阈值分布图形为正方形,或者线形,或者菱形,或者圆形等形状分布;单元网点频率用于决定单元网点的大小,即单元网点的长和宽,进一步的,单元网点的长度用包含的列数表示,一列为一个单位长度,单元网点的宽度用包含的行数来表示,一行为一个单位长度,并且,通常单元网点的长包含的列数和单元网点的宽包含的行数一般取值都为奇数;待处理图像的位深用于确定待处理图像的像素点有多少个bit位组成。同时,可以根据待处理图像的位深和单元网点频率,确定halftone阈值矩阵中包含的单元网点的个数。

在一组halftone阈值矩阵参数中,根据设定的halftone阈值矩阵参数可以生成对应的halftone阈值矩阵,即如果一组的halftone阈值矩阵参数与另一组的halftone阈值矩阵参数不同,则可以生成不同的halftone阈值矩阵,因此,对于同一待处理图像,可以根据想要得到的halftone阈值矩阵来设置halftone阈值矩阵参数,即对于同一待处理图像,可以根据不同的halftone阈值矩阵参数得到不同效果的halftone阈值矩阵,因此,在实际应用的过程中,可以根据实际需求设定halftone阈值矩阵参数。

例如,为了获取同一待处理图像的不同效果的halftone阈值矩阵,用户可以输入不同的halftone阈值矩阵参数。又例如,为当待处理图像的位深为1bit,图像分辨率为600dpi时,用户输入的halftone阈值矩阵参数可以为:单元网点角度为45°、单元网点形状为菱形、单元网点频率为5*5和待处理图像的位深为1bit;或者,用户输入的halftone阈值矩阵参数还可以为:单元网点角度为30°、单元网点形状为正方形、单元网点频率为5*5和待处理图像的位深为1bit。

102、根据所述halftone阈值矩阵参数,生成阈值填充索引表。

具体的,阈值填充索引表是生成halftone阈值矩阵的基础,阈值填充索引表由至少一个单元网点构成,当阈值填充索引表中包含至少两个单元网点时,该至少两个单元网点需要根据单元网点角度进行拼接排列,以确定出阈值填充索引表中包含的各单元网点之间是如何拼接排列的,其中,单元网点的个数需要根据待处理图像的位深和单元网点频率来确定。

在一个具体的实施方式中,在根据所述halftone阈值矩阵参数,生成阈值填充索引表时,需要先根据单元网点频率,生成单元网点,然后再根据添加有指定标识的单元网点、所述单元网点频率、所述单元网点形状、所述待处理图像的位深和所述单元网点角度,生成所述阈值填充索引表。

在一个具体的实施方式中,在根据单元网点频率,生成单元网点时,需要根据单元网点频率,确定出阈值填充单元的行数和列数,然后在根据阈值填充单元的行数和列数,生成所述单元网点。

具体的,单元网点频率中包括单元网点的长度和宽度,其中,长度可以用单位长度的数目表示,宽度也可以用单位长度的数目表示,一个单位长度为一行或一列,因此,单元网点的长度为单元网点包含的列数,单元网点的宽度为单元网点包含的行数,又因为,单元网点中包括至少一个阈值填充单元,阈值填充单元的数目为单元网点的长度和宽度的乘积,即行数和列数的乘积,并且阈值填充单元在单元网点中的分布方式是按照行数和列数的排布方式分布的,因此在获取到单元网点的频率后,需要先确定出单元网点中阈值填充单元的行数和列数,以确定出阈值填充单元在单元网点中的分布方式,然后在根据确定出的阈值填充单元的行数和列数,生成单元网点。

例如,如图2所示,单元网点的频率为5*5,即单元网点的长度为5个单位长度(单元网点中的阈值填充单元的列数为5列),单元网点的宽度为5个单位长度(单元网点中的阈值填充单元的行数为5行),在根据单元网点的频率,确定出阈值填充单元的行数和列数后,然后在根据阈值填充单元的行数和列数,生成包含5行阈值填充单元和5列阈值填充单元的单元网点,在该单元网点中包含25个阈值填充单元。

在一个具体的实施方式中,在生成单元网点后,还需要确定出该单元网点中那些阈值填充单元为像素所在的阈值填充单元,以及像素对应的阈值填充单元在该单元网点中的分布情况,因此,在生成单元网点后,根据所述单元网点、所述单元网点角度、所述单元网点形状、单元网点的频率和所述待处理图像的位深,生成所述阈值填充索引表时,需要先根据所述单元网点形状,确定像素对应的阈值填充单元在所述单元网点中的位置,再根据像素对应的阈值填充单元在所述单元网点中的位置,在所述单元网点中对应位置处添加指定标识,然后再根据添加有指定标识的单元网点、所述单元网点频率、所述单元网点形状、所述待处理图像的位深和所述单元网点角度,生成所述阈值填充索引表。

其中,上述提到的“像素所在的阈值填充单元”为将图像数据中的像素点的像素值与halftone阈值矩阵中的阈值比较大小时,与该像素点的像素值进行比较的阈值所在的阈值填充单元,其中,该阈值填充单元为阈值填充单元中存在指定标识的阈值填充单元,该阈值填充单元中填充的阈值小于不存在指定标识的阈值填充单元中填充的阈值。

具体的,由于单元网点形状用于决定单元网点内的阈值分布,因此,根据单元网点形状,可以确定出指定标识应该添加在单元网点中的哪个阈值填充单元中,并且为了区分该阈值填充单元是否为像素所在的阈值填充单元,需要确定出像素所在的阈值填充单元在单元网点中的位置,并在该位置上添加指定标识,然后再根据添加有指定标识的单元网点、所述待处理图像的位深和所述单元网点角度,生成所述阈值填充索引表。

例如,如图3所示,单元网点为一个包含5行阈值填充单元和5列阈值填充单元的单元网点,且当待处理图像的位深为8bit,单元网点形状为圆形时,添加指定标识的阈值填充单元为图3中灰色填充区域中的阈值填充单元,然后根据图3中灰色填充区域中的阈值填充单元的位置确定单元网点中像素所在的阈值填充单元的位置;或者,又例如,如图4所示,单元网点为一个包含5行阈值填充单元和5列阈值填充单元的单元网点,且当待处理图像的位深为8bit,单元网点形状为菱形时,添加指定标识的阈值填充单元为图4中灰色填充区域中的阈值填充单元,然后根据图4中灰色填充区域中的阈值填充单元的位置确定单元网点中像素所在的阈值填充单元的位置;或者,又例如,如图5所示,单元网点为一个包含5行阈值填充单元和5列阈值填充单元的单元网点,且当待处理图像的位深为8bit,单元网点形状为正方形时,添加指定标识的阈值填充单元为图5中灰色填充区域中的阈值填充单元,然后根据图5中灰色填充区域中的阈值填充单元的位置确定单元网点中像素所在的阈值填充单元的位置;或者,又例如,如图6所示,单元网点为一个包含5行阈值填充单元和5列阈值填充单元的单元网点,且当待处理图像的位深为8bit,单元网点形状为线性时,添加指定标识的阈值填充单元为图6中灰色填充区域中的阈值填充单元,然后根据图6中灰色填充区域中的阈值填充单元的位置确定单元网点中像素所在的阈值填充单元的位置。

在确定出灰色填充区域中像素所在的阈值填充单元在单元网点中的位置后,在灰色填充区域中像素所在的阈值填充单元中添加指定标识“1”,再根据添加有指定标识“1”的单元网点,待处理图像的位深和单元网点角度,生成所述阈值填充索引表。其中,在单元网点的各阈值填充单元中添加阈值时,添加有指定标识“1”的阈值填充单元中添加的阈值均小于为添加指定标识“1”的阈值填充单元中添加的阈值。

在一个具体的实施方式中,在根据添加有指定标识的单元网点、所述单元网点频率、所述单元网点形状、所述待处理图像的位深和所述单元网点角度,生成所述阈值填充索引表时,可以按照以下方式生成:根据所述单元网点频率和所述单元网点形状,确定添加有指定标识的单元网点中添加有指定标识的阈值填充单元的个数;根据所述待处理图像的位深和添加有指定标识的单元网点中添加有指定标识的阈值填充单元的个数,按照预设取值规则,确定添加有指定标识的单元网点的个数,其中,添加有指定标识的单元网点个数的取值为正整数;根据添加有指定标识的单元网点的个数和所述单元网点角度,以一个添加有指定标识的单元网点为基准,按照预设拼接排列方式,对对应个数的添加有指定标识的单元网点进行两两拼接排列,确定对应个数的添加有指定标识的单元网点的拼接排列方式;根据对应个数的添加有指定标识的单元网点的拼接排列方式,对添加有指定标识的单元网点进行拼接排列,生成所述阈值填充索引表。

具体的,由于单元网点频率决定该单元网点的大小,单元网点形状决定单元网点内的阈值分布,因此,可以根据所述单元网点频率和所述单元网点形状,确定出单元网点中添加有指定标识的阈值填充单元的个数,即单元网点中像素对应的阈值填充单元的个数。

然后,在根据待处理图像的位深和单元网点中添加有指定标识的阈值填充单元的个数,确定阈值填充索引表中包含的网点单元的个数,其中,由于单元网点的个数的正整数,但是在根据待处理图像的位深和单元网点中添加有指定标识的阈值填充单元的个数,得到的结果可能不是正整数,因此,需要预先设定取值规则,然后在得到结果后,按照该预设取值规则取正整数,以作为阈值填充索引表中包含的网点单元的个数。

在确定出阈值填充索引表中包含的网点单元的个数后,需要对对应个数的单元网点进行拼接排列,以确定出准确的阈值填充索引表,并且,在对对应个数的网点单元进行拼接排列时,需要确定出一个基准单元网点,并根据单元网点角度,确定出每两个单元网点之间拼接位置,然后,以该基站单元网点为基准,按照上述每两个单元网点之间拼接位置和预设拼接排列方式(单元网点在排列时的展开方式),确定对应个数的单元网点之和如何进行拼接排列,即对应个数的单元网点按照何种展开方式进行拼接排列。其中,在按照预设拼接排列方式,对对应个数的单元网点进行两两拼接排列时,需要以该基准单元网点为基础,将其他单元网点均匀的分布在该基准单元网点周围,具体的展开方式在此不作具体限定。

并且,确定出单元网点之间的拼接排列方式后,可以按照该拼接排列方式对对应个数的单元网点进行拼接排列,并将拼接排列后的单元网点作为阈值填充索引表。

在一个具体的实施方式中,在确定添加有指定标识的单元网点的个数时可以利用如下公式来确定:

P=(2bit-1)/2/k;

其中,P为添加有指定标识的单元网点的个数;bit为所述待处理图像的位深;k为添加有指定标识的单元网点中添加有指定标识的阈值填充单元的个数。

在一个具体的实施方式中,预设取值规则可以为对小数点后一位数字按照四舍五入的方式进行取值。

具体的,在待处理图像的位深和单元网点中添加有指定标识的阈值填充单元的个数在确定的情况下,可以通过上述公式确定出一个数值,当该数值为正整数时,则将该正整数作为添加有指定标识的单元网点的个数;当该数值不为正整数时,需要按照四舍五入的取值方式对该数值中小数点后一位数值进行取值,以得到正整数,并将得到的正整数作为添加有指定标识的单元网点的个数。

例如,如图3所示的单元网点,单元网点的形状为圆形,添加有指定标识的单元网点的个数为21个,当待处理图像的位深为8bit时,添加有指定标识的单元网点的个数为(28-1)/2/21≈6.095,对该数据进行四舍五入后,添加有指定标识的单元网点的个数为6个。

又例如,如图4所示的单元网点,单元网点的形状为菱形,添加有指定标识的单元网点的个数为13个,当待处理图像的位深为8bit时,添加有指定标识的单元网点的个数为(28-1)/2/13≈9.807,对该数据进行四舍五入后,添加有指定标识的单元网点的个数为10个。

又例如,如图5所示的单元网点,单元网点的形状为正方形,添加有指定标识的单元网点的个数为25个,当待处理图像的位深为8bit时,添加有指定标识的单元网点的个数为(28-1)/2/25≈5.1,对该数据进行四舍五入后,添加有指定标识的单元网点的个数为5个。

又例如,如图6所示的单元网点,单元网点的形状为线形,添加有指定标识的单元网点的个数为10个,当待处理图像的位深为8bit时,添加有指定标识的单元网点的个数为(28-1)/2/10≈12.75,对该数据进行四舍五入后,添加有指定标识的单元网点的个数为13个。

在一个具体的实施方式中,可以利用如下公式对对应个数的添加有指定标识的单元网点进行两两拼接排列:

Y_Offset=tan(Angle)*X_Offset;

其中,Y_Offset为两个相邻的添加有指定标识的单元网点中一个添加有指定标识的单元网点的中心像素点到另一个添加有指定标识的单元网点的中心像素点在垂直方向上的偏移量;X_Offset为两个相邻的添加有指定标识的单元网点中一个添加有指定标识的单元网点的中心像素点到另一个添加有指定标识的单元网点的中心像素点在水平方向上的偏移量,其中,X_Offset的取值与阈值填充单元的列数相等;Angle为所述单元网点角度。

如图7所示,a表示单元网点A的中心像素点在与单元网点A相邻的单元网点B的中心像素点所在水平方向上的投影,X_Offset为图7中投影a的中心位置到单元网点B的中心像素点的距离,Y_Offset为图7中投影a的中心位置到单元网点A的中心像素点的距离,Angle为单元网点A的中心像素点与单元网点B的中心像素点在垂直方向上的偏移量对应的夹角值。

其中,X_Offset与单元网点频率有关,例如,当单元网点频率为5*5时,单元网点的宽度为5,即X_Offset=5,Angle等于单元网点角度,Y_Offset=tan(Angle)*5,即两个相邻单元网点的中心像素点在水平方向的偏移为5,单元网点角度为Angle时,两个相邻单元网点的中心像素点在垂直方向的偏移为Y_Offset。

并且,X_Offset在水平方向的偏移可以为向左偏移,或者,也可以向右偏移,Y_Offset在垂直方向的偏移可以为向上偏移,或者也可以向下偏移,即图7中的单元网点A可以在单元网点B的左下方,或者,可以在单元网点B的左上方,或者,可以在单元网点B的右下方,或者,可以在单元网点B的右上方,在此不作具体限定。

在实际生成阈值填充索引表时,考虑到后续进行图像处理的便利性,阈值填充索引表往往被设计成矩形,即当阈值填充索引表中包含有全白的单元网点时,阈值填充索引表中全白的单元网点(没有添加指定标识的单元网点)与包含有灰色部分的单元网点,以灰白相间的方式均匀地分布在阈值填充索引表中,当阈值填充索引表中不包含有全白的单元网点时,各个单元网点拼接成的阈值填充索引表即为矩形。

如图8所示,阈值填充索引表中包含有全白的单元网点,且该阈值填充索引表中包含10个单元网点。当编号1对应的单元网点为基准单元网点时,按照上述水平偏移和垂直偏移,在1的左上方、左下方、右上方和右下方,根据单元网点的宽度和单元网点角度,生成4个单元网点,分别为2、3、4、5,由于阈值填充索引表中包含的单元网点的总数为10个,即还需要再确定5个单元网点,可以从2、3、4、5中任意选取两个单元网点,考虑到阈值索引表中包含有灰色部分的单元网点是均匀分布的,且阈值填充索引表的形状为矩形,可以选择4、5这两个单元网点,然后以4为基准,生成7、8和9对应的单元网点,以5为基准,生成6和10对应的单元网点。

当然,当单元网点的个数大于10,或者小于10个时,阈值索引表中包含有灰色部分的单元网点的分布可以按照上述规律进行确定。

在一个具体的实施方式中,当阈值填充索引表中包含有10个单元网点,单元网点角度为0度或者90度时,即单元网点的Y_Oset=0,并且相邻两个单元网点的中心像素点在水平方向的偏移量水平方向的偏移为5,垂直方向的偏移为0,生成的阈值填充索引表可以如图9所示。

在一个具体的实施方式中,当单元网点角度为45度,单元网点的Y_Oset=5*tan45°=5,阈值填充索引表中包含有10个单元网点,并且相邻两个单元网点的中心像素点在水平方向的偏移量为5,垂直方向的偏移为5,在按照上述条件生成阈值填充索引表时,可以根据不同的预设拼接排列方式,生成不同的阈值填充索引表,其中一种阈值填充索引表如图10所示,其中,B1、B3、B5、B7、B9、B11、B13、B15、B17和B19为全白的单元网点在阈值填充索引表中的位置。

在一个具体的实施方式中,当单元网点角度为30°,单元网点Y_Oset=5*tan30≈3,阈值填充索引表中包含有10个单元网点,并且相邻两个单元网点的中心像素点在水平方向的偏移为5,垂直方向的偏移为3,在按照上述条件生成阈值填充索引表时,可以根据不同的预设拼接排列方式,生成不同的阈值填充索引表,其中一种阈值填充索引表如图11所示。

103、根据所述阈值填充索引表,生成halftone阈值矩阵。

具体的,在获取到上述阈值填充索引表后,在阈值填充索引表中的单元网点中的各阈值填充单元中添加上对应的阈值,就可以得到halftone阈值矩阵。

在一个具体的实施方式中,在根据所述阈值填充索引表,生成halftone阈值矩阵时,需要先获取所述阈值填充索引表中阈值填充单元的个数N,所述N的取值范围为正整数;再判断N是否等于指定数值,其中,所述指定数值为2^bit,bit为所述待处理图像的位深;若N等于所述指定数值,确定所述阈值填充索引表的各阈值填充单元中填充的阈值的范围是大于或者等于0,小于或者等于N-1,并根据预设填充顺序,在所述阈值填充索引表的各阈值填充单元中添加阈值,以生成halftone阈值矩;若N不等于所述指定数值,确定所述阈值填充索引表的各阈值填充单元中填充的阈值的范围是大于或者等于0,小于或者等于w*N,并根据预设填充顺序,在所述阈值填充索引表的各阈值填充单元中添加阈值,其中,w=(2^bit-1)/N,以生成halftone阈值矩,其中,w*N的取值为自然数,在对w*N取值时,按照四舍五入的取值方法对w*N进行取值,为了方便描述,后续w*N默认是根据四设五入的取值方法取值的自然数

在一个具体的实施方式中,添加有指定标识的阈值填充单元中填充的阈值小于未添加指定标识的阈值填充单元中填充的阈值,且所述阈值填充索引表的各阈值填充单元中添加阈值互不相同。

在一个具体的实施方式中,以图9为例,阈值填充索引表中阈值填充单元的个数为250,指定数值2^bit=256,此时N不等于256,在阈值填充索引表的各个阈值填充单元中添加阈值时,阈值的填充范围是[0,w*N],由于w=(2^bit-1)/N,此时可以确定出各个阈值填充单元中添加阈值的范围是[0,255]。

在一个具体的实施方式中,阈值填充索引表中阈值填充单元的个数为256,指定数值2^bit=256,此时N等于256,在在阈值填充索引表的各个阈值填充单元中添加阈值时,阈值的填充范围是[0,255]。

以阈值的填充范围是[0*w,249*w],即阈值的填充范围是[0,255]为例,如图9所示,在单元网点中包括添加有标识1的灰色阈值填充单元和未添加标识1的白色阈值填充单元,其中,添加有标识1的灰色阈值填充单元的数目为130个,未添加标识1的白色阈值填充单元的数目为120个,在阈值填充单元中添加阈值时,先在添加有标识1的灰色阈值填充单元中添加阈值,添加的阈值范围为[0,129*w];然后再在未添加标识1的白色阈值填充单元中添加阈值,添加的阈值范围为[130*w,255],其中附图9所示的阈值填充单元中的阈值是没有乘以系数w并按照四舍五入的取值方法取值的阈值

在一个具体的实施方式中,以单元网点频率为5*5,单元网点形状为菱形的单元网点为例,如图12所示,灰色部分为单元网点中阈值填充单元的分布情况,灰色部分中的HY1、HY2、HY3……HY13为一个单元网点中不同阈值填充单元对应的编号,上述编号为添加有指定标识(即灰色部分)的阈值填充单元。

在一个具体的实施方式中,以单元网点频率为5*5,单元网点形状为圆形的单元网点为例,如图13所示,灰色部分为单元网点中阈值填充单元的分布情况,灰色部分中的HY1、HY2、HY3……HY17为一个单元网点中不同阈值填充单元对应的编号,上述编号为添加有指定标识(即灰色部分)的阈值填充单元。

在一个具体的实施方式中,如图12所示,Y的取值可以为1、2、3……P,P与阈值填充索引表中的单元网点的个数相同,HY表示第几个单元网点,例如,H1表示第一个单元网点,H2表示第二个单元网点。HYm表示某个单元网点中的某个添加有指定标识的阈值填充单元,其中,m与单元网点中添加有指定标识的阈值填充单元的个数相同,例如,H11,表示第一单元网点中的第一个添加有指定标识的阈值填充单元,H21表示第二个单元网点中的第一个添加有指定标识的阈值填充单元。

在一个具体的实施方式中,单元网点以图12所示,单元网点形成的阈值填充索引表以图9所示,标号为1的单元网点中添加指定标识的阈值填充单元的编号为:H11-H113,标号为2的单元网点中添加指定标识的阈值填充单元的编号为:H21-H213,以此类推,得到各个单元网点中各阈值填充单元的编号。然后,按照H11、H21、H31、……、H101、H12、H22、H32、……、H202、H13、H23、H33、……、H103、H14、H24、H34、……、H104、H15、H25、H35、……、H105、H16、H26、H36、……、H106、H17、H27、H37、……、H107、H18、H28、H38、……、H108、H19、H29、H39、……、H109、H110、H210、H310、……、H1010、H111、H211、H311、……、H1011、H112、H212、H312、……、H1012、H113、H213、H313……、H1013的顺序在阈值填充索引表的各阈值填充单元中填充阈值,并且在填充阈值时,按照从小到大的顺序将阈值填充在添加有指定标识的阈值填充单元中,即按照上述填充顺序,且将0*w,1*w,2*w,3*w,4*w……129*w依次在阈值填充索引表中添加有指定标识的阈值填充单元中进行填充,其中w=w=(2^bit-1)/N,其中N=250。

在一个具体的实施方式中,在对阈值填充索引表中添加有指定标识的阈值填充单元填充完毕后,还需要对阈值填充索引表中未添加指定标识的阈值填充单元进行填充。

在一个具体的实施方式中,如图14所示的单元网点,BX1-BX12为单元网点中未添加指定标识的阈值填充单元,X的取值与阈值填充索引表中单元网点的个数相同,B1表示第一个单元网点,B2表示第二个单元网点。BXQ表示某个单元网点中某个未添加指定标识的阈值填充单元,B21表示第二个单元网点中第一个未添加指定标识的阈值填充单元,B22表示第二个单元网点中第二个未添加指定标识的阈值填充单元。

在一个具体的实施方式中,单元网点以图14所示,单元网点形成的阈值填充索引表以图9所示,标号为1的单元网点中未添加指定标识的阈值填充单元的编号为:B11-B112,标号为2的单元网点中未添加指定标识的阈值填充单元的编号为:B21-B212,以此类推,得到各个单元网点中各阈值填充单元的编号。然后,按照B11、B21、B31、……、B101、B12、B22、B32、……、B102、B13、B23、B33、……、B103、B14、B24、B34、……、B104、B15、B25、B35、……、B105、B16、B26、B36、……、B106、B17、B27、B37、……、B107、B18、B28、B38、……、B108、B19、B29、B39、……、B109、B110、B210、B310、……、B1010、B111、B211、B311、……、B1011、B112、B212、B312、……B1012的顺序在阈值填充索引表的各未添加指定标识的阈值填充单元中填充阈值,并且在填充阈值时,按照从小到大的顺序将阈值填充在阈值填充单元中,即按照上述填充顺序,且将130*w,131*w,132*w,133*w,134*w……249*w依次在阈值填充索引表中未添加指定标识的阈值填充单元中进行填充,其中w=(2^bit-1)/N,其中N=250。

在一个具体的实施方式中,如图15所示的单元网点,BX1-BX25为全是白色的阈值填充单元,X的取值与阈值填充索引表中全是白色的单元网点的个数相同,B11表示第一个全是白色的单元网点中第一个阈值填充单元,B12表示第一个全是白色的单元网点中第二个阈值填充单元,B21表示第二个全是白色的单元网点中第一个阈值填充单元,B22表示第二个全是白色的单元网点中第二个阈值填充单元。全是白色的阈值填充单元的阈值填充方法与上述类型,在此不再一一赘述。

在一个具体的实施方式中,当单元网点形状为圆形时,单元网点中未添加指定标识的阈值填充单元的编号如图16所示。

在一个具体的实施方式中,当单元网点形状为线性时,单元网点中未添加指定标识的阈值填充单元的编号如图17所示。在一个具体的实施方式中,在如图9所示的阈值填充索引表中的各阈值填充单元填充阈值后,生成的halftone阈值矩阵可以如图18所示。

在本发明实施例中,由于在获取到用户输入的halftone阈值矩阵参数后,可以根据该halftone阈值矩阵参数,生成阈值填充索引表,并根据该阈值填充索引表,生成包含至少一个阈值的halftone阈值矩阵,因此在本发明实施例中可以根据用户输入的halftone阈值矩阵参数自动生成halftone阈值矩阵,省去了因手动对该halftone阈值矩阵设计并不断调试时的繁琐过程,提高了设计效率。

本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。

实施例二

本发明实施例提供了一种halftone阈值矩阵的生成装置,如图19所示,该装置包括:

获取单元191,用于获取用户输入的halftone阈值矩阵参数;

索引表生成单元192,用于根据所述halftone阈值矩阵参数,生成阈值填充索引表;

阈值矩阵生成单元193,用于根据所述阈值填充索引表,生成包含至少一个阈值的halftone阈值矩阵。

在一个具体的实施方式中,所述halftone阈值矩阵参数包括:单元网点角度、单元网点形状、单元网点频率和待处理图像的位深。

在一个具体的实施方式中,所述索引表生成单元192用于根据所述halftone阈值矩阵参数,生成阈值填充索引表时,具体用于:根据所述单元网点频率,生成单元网点,其中,所述单元网点携带有至少一个阈值填充单元;根据所述单元网点形状,确定像素对应的阈值填充单元在所述单元网点中的位置;根据像素对应的阈值填充单元在所述单元网点中的位置,在所述单元网点中对应位置处添加指定标识;根据添加有指定标识的单元网点、所述单元网点频率、所述待处理图像的位深、所述待处理图像的位深和所述单元网点角度,生成所述阈值填充索引表。

在一个具体的实施方式中,所述索引表生成单元192用于根据添加有指定标识的单元网点、所述单元网点频率、所述待处理图像的位深、所述待处理图像的位深和所述单元网点角度,生成所述阈值填充索引表时,具体用于:根据所述单元网点频率和所述单元网点形状,确定添加有指定标识的单元网点中添加有指定标识的阈值填充单元的个数;根据所述待处理图像的位深和添加有指定标识的单元网点中添加有指定标识的阈值填充单元的个数,按照预设取值规则,确定添加有指定标识的单元网点的个数,其中,添加有指定标识的单元网点个数的取值为正整数;根据添加有指定标识的单元网点的个数和所述单元网点角度,以一个添加有指定标识的单元网点为基准,按照预设拼接排列方式,对对应个数的添加有指定标识的单元网点进行两两拼接排列,确定对应个数的添加有指定标识的单元网点的拼接排列方式;根据对应个数的添加有指定标识的单元网点的拼接排列方式,对添加有指定标识的单元网点进行拼接排列,生成所述阈值填充索引表。

在一个具体的实施方式中,所述索引表生成单元192用于根据所述待处理图像的位深和添加有指定标识的单元网点中添加有指定标识的阈值填充单元的个数,按照预设取值规则,确定添加有指定标识的单元网点的个数时,具体用于:利用如下公式确定添加有指定标识的单元网点的个数:

P=(2bit-1)/2/k;其中,P为添加有指定标识的单元网点的个数;bit为所述待处理图像的位深;k为添加有指定标识的单元网点中添加有指定标识的阈值填充单元的个数;所述预设取值规则为对小数点后一位数字按照四舍五入的方式进行取值。

在一个具体的实施方式中,所述索引表生成单元192用于对对应个数的添加有指定标识的单元网点进行两两拼接排列时,具体用于:利用如下公式对对应个数的添加有指定标识的单元网点进行两两拼接排列:

Y_Offset=tan(Angle)*X_Offset;其中,Y_Offset为两个相邻的添加有指定标识的单元网点中一个添加有指定标识的单元网点的中心像素点到另一个添加有指定标识的单元网点的中心像素点在垂直方向上的偏移量;X_Offset为两个相邻的添加有指定标识的单元网点中一个添加有指定标识的单元网点的中心像素点到另一个添加有指定标识的单元网点的中心像素点在水平方向上的偏移量,其中,X_Offset的取值与阈值填充单元的列数相等;Angle为所述单元网点角度。

在一个具体的实施方式中,所述阈值矩阵生成单元193用于根据所述阈值填充索引表,生成halftone阈值矩阵时,具体用于:获取所述阈值填充索引表中阈值填充单元的个数N,所述N的取值范围为正整数;判断N是否等于指定数值,其中,所述指定数值为2^bit,bit为所述待处理图像的位深;若N等于所述指定数值,确定所述阈值填充索引表的各阈值填充单元中填充的阈值的范围是大于或者等于0,小于或者等于N-1,并根据预设填充顺序,在所述阈值填充索引表的各阈值填充单元中添加阈值,以生成包含至少一个阈值的halftone阈值矩阵;若N不等于所述指定数值,确定所述阈值填充索引表的各阈值填充单元中填充的阈值的范围是大于或者等于0,小于或者等于w*N,并根据预设填充顺序,在所述阈值填充索引表的各阈值填充单元中添加阈值,其中,w=(2^bit-1)/N,以生成包含至少一个阈值的halftone阈值矩阵;其中,添加有指定标识的阈值填充单元中填充的阈值小于未添加指定标识的阈值填充单元中填充的阈值,且所述阈值填充索引表的各阈值填充单元中添加阈值互不相同。

在一个具体的实施方式中,所述单元网点角度的取值范围为大于或者等于0°,且小于或者等于90°

由于本实施例中的各单元能够执行实施例一所示的方法,本实施例未详细描述的部分,可参考对实施例一的相关说明。

在本发明实施例中,由于在获取到用户输入的halftone阈值矩阵参数后,可以根据该halftone阈值矩阵参数,生成阈值填充索引表,并根据该阈值填充索引表,生成包含至少一个阈值的halftone阈值矩阵,因此在本发明实施例中可以根据用户输入的halftone阈值矩阵参数自动生成halftone阈值矩阵,省去了因手动对该halftone阈值矩阵设计并不断调试时的繁琐过程,提高了设计效率。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1