实施例一
图1为本发明实施例一提供的出墨量控制方法的流程图。如图1所述,本实施例中的出墨量控制方法,可以包括:
步骤101、根据像素点的四种标准颜色CMYK值,确定所述像素点的出墨量。
具体地,一幅待打印的图像可能是CMYK图像或RGB图像,如果是RGB图像要首先转化成CMYK图像才能进行输出。在步骤101之前,还可以根据客户的需要对待打印图像进行各种处理,例如ICC较色、对比度亮度的调整等等。处理完之后,如果用ij表示像素点的位置,则各像素点的值可以表示为cmykij。
在图像处理后还需要对待打印图像进行线性化处理,通过线性化处理可以提高图像打印的稳定性。线性化处理的过程可以用下面一个式子表示:
CMYKij=F(cmykij) (1)
其中,cmykij是线性化处理之前的CMYK值,CMYKij是线性化处理之后的CMYK值。F代表处理过程,既可以与像素点的CMYK值有关,也可以和像素点所在的位置有关。
每个像素点均具有青C、品红M、黄Y、黑K四版,线性化过程是针对单版分别进行处理的,具体可以通过查表法实现。图2为本实施例提供的出墨量控制方法中C版的线性化查找表。如图2所示,若某一像素点在线性化处理之前的C值为50,则线性化处理之后的C值为g。这样,针对C、M、Y、K分别建立四个查找表,就可以快速得到线性化处理之后的CMYK值。
在线性化处理之后,可以根据待打印图像中像素点的CMYK值,确定所述像素点的出墨量。
步骤102、根据标准出墨量阈值,确定所述像素点的出墨量阈值。
其中,标准出墨量阈值是指,将图像打印在纸上时刚好不会堆墨的出墨量。若某一像素点的出墨量大于所述标准出墨量阈值,就认为所述像素点会引起堆墨,需要对所述像素点进行砍墨。所述标准出墨量阈值可以由用户输入确定,也可以采用默认值。
具体地,所述根据标准出墨量阈值,确定所述像素点的出墨量阈值,具体可以包括:以所述标准出墨量阈值作为所述像素点的出墨量阈值;或者,在所述标准出墨量的预设范围内随机选取一个数值,作为所述像素点的出墨量阈值。
比较简单、快速的方法是:以所述标准出墨量阈值作为所述像素点的出墨量阈值,但是,这种方法可能存在的一个问题是:对于很多图像来说,容易堆墨的像素一般会集中在一个区域中,如果以一个固定的阈值进行砍墨,那么砍墨和没砍墨的地方就会有明显的界限,会造成图像过渡不够平滑、自然。
为了解决这一问题,可以在所述标准出墨量的预设范围内随机选取一个数值,作为所述像素点的出墨量阈值。也就是说,对于不同的像素点来说,不是以一个固定的出墨量阈值来判断会不会堆墨,而是将出墨量阈值在一定范围内进行抖动,具体可以用下式表示:
thresholdij=Dither(Threshold-n,Threshold+n) (2)
其中,thresholdij表示所述像素点的出墨量阈值,Threshold表示所述标准出墨量阈值,n为一固定数值,表示抖动的范围,Dither函数表示随机在一定范围内取值。这样,即使对待打印图像进行砍墨,也不会影响图像的平滑性。
步骤103、判断所述像素点的出墨量是否大于所述像素点的出墨量阈值;若大于,则减小所述像素点的CMYK值,直至所述像素点的CMYK值对应的出墨量小于等于所述像素点的出墨量阈值。
具体地,减少所述像素点的CMYK值可以有多种方法,例如可以采用以下伪代码实现:
While(InkOutij>thresholdij)
{
Cij--;
Mij--;
Yij--;
Kij--;
重新计算新的CMYKij对应的InkOutij;
}
InkOutij为位于ij位置的像素点的出墨量。thresholdij是所述像素点对应的出墨量阈值。
由于打印机可能包括几种浓度不同的墨滴,例如,深墨的墨滴浓度较大、浅墨浓度较小、浅浅墨相对于浅墨来说浓度更小,所以对于同样的C值,如果用深墨的话用量较小,用浅墨的话用量较多,因此,CMYK值大的地方不一定会堆墨,CMYK值小的地方也不一定不会堆墨,仅通过CMYK值来确定是否对像素点进行砍墨是不准确的,而本实施例中,通过CMYK值确定出墨量,并将所述出墨量与出墨量阈值进行比较,能够更加准确地判断所述像素点是否会堆墨。
本实施例提供的出墨量控制方法中,通过待打印图像中像素点的CMYK值,确定所述像素点的出墨量,并为每个像素点确定一个出墨量阈值,通过判断所述像素点的出墨量是否大于所述出墨量阈值来决定是否对所述像素点进行砍墨,能够有效避免堆墨现象。
在上述实施例提供的技术方案的基础上,优选的是,步骤101中根据像素点的CMYK值,确定所述像素点的出墨量,具体可以包括:
步骤1011、根据所述像素点的CMYK值以及分色层次,确定青色C、品红色M、黄色Y和黑色K中每一色彩的挂网输出值。
具体地,图像在打印之前首先要进行挂网和分色转换为半色调图像,然后才能输出。步骤1011的步骤即为挂网处理,挂网就是通过浓度不同的墨滴以及这些墨滴的疏密来表达层次的,其中,可以采用下面的式子确定每一色彩的挂网输出值:
Clevelij=H1(Cij,nc) (3)
Mlevelij=H2(Mij,nm) (4)
Ylevelij=H3(Yij,ny) (5)
Klevelij=H4(Kij,nk) (6)
其中,ij为像素点的位置;Cij、Mij、Yij、Kij分别为所述像素点的C、M、Y、K值;Clevelij、Mlevelij、Ylevelij、Klevelij分别为所述像素点C版、M版、Y版和K版的挂网输出值;nc、nm、ny、nk分别为C版、M版、Y版、K版的分色层次,如果分色层次为n,那么挂网输出值的范围就是0至n-1。H1、H2、H3、H4分别为每一色彩的挂网函数,挂网函数不止与所述像素点的CMYK值有关,还与分色层次以及所述像素点周围的点有关。
实际挂网的过程比较复杂,H1、H2、H3、H4很难用一个简单的数学函数表示出来,为了提高计算速度,本实施例中可以用一个较简单方法来确定挂网输出值。以C版为例,假设分色层次为n,分色层次的分布示意图如图3所示,上面一行数值表示参考值,下面一行数值表示不同参考值对应的挂网输出值,所述参考值可以由用户输入,或者可以采用默认设置。
与Cij相等的参考值对应的数值即为所述像素点C版的挂网输出值,例如,Cij为255/(n-1)×3,则所述像素点C版的挂网输出值为3;挂网输出值也可以为一个随机值,并且只可能是Cij左右节点的两个值,例如,如果Cij的值满足:255/(n-1)×3>Cij>255/(n-1)×2,则所述像素点C版的挂网输出值可能是2或者3,是2还是3具有随机性,概率由Cij离左右两个参考值的远近决定,是2的概率为:Cij/(255/(n-1))-2;是3的概率为:3-Cij/(255/(n-1))。
步骤1012、根据所述色彩对应的挂网输出值确定所述色彩的出墨量。
具体地,可以首先进行分色处理,即根据所述分色层次,确定所述色彩的每一层次中至少两种不同浓度的墨滴的用量。分色与挂网(即步骤1011)的处理过程也可以交换。表1示出了当打印机有两种浓度的墨滴时对C版进行分色的结果。
表1
层次 |
0 |
1 |
2 |
3 |
4 |
5 |
…… |
C |
0 |
a1 |
a2 |
a3 |
a4 |
a5 |
…… |
LC |
0 |
b1 |
b2 |
b3 |
b4 |
b5 |
…… |
其中,C表示深墨用量,LC表示浅墨用量,层次为k对应的深墨用量为ak,对应的浅墨用量为bk。
对于每一色彩,根据所述挂网输出值,确定不同浓度的墨滴的用量,并将所述不同浓度的墨滴的用量相加,就可以得到所述色彩的出墨量。
根据表1,当层次等于所述挂网输出值时,对应的C和LC的值即为所述像素点C版的深墨用量和浅墨用量。例如,挂网输出值为3,则深墨用量为a3,浅墨用量为b3,a3和b3相加即为所述像素点C版的出墨量;如果挂网输出值是随机值,则按照分色的结果,层次2的深墨和浅墨用量之和为a2+b2,层次3的深墨与浅墨用量之和为a3+b3,根据两者出现的概率,所述像素点的C版出墨量为:
(cij/(255/(n-1))-2)×(a2+b2)+(3-cij/(255/(n-1)))×(a3+b3)
按照同样的方法,可以计算出所述像素点的M版、Y版和K版的出墨量。
步骤1013、将所述像素点的所述C、所述M、所述Y和所述K的出墨量相加,得到所述像素点的出墨量。
通过挂网输出值计算像素点各版对应的不同浓度的墨滴用量,将各浓度对应的墨滴用量相加即可以得到每版对应的出墨量,将四版的出墨量相加,可以简单、快速地确定所述像素点的出墨量。
在上述实施例提供的技术方案的基础上,优选的是,在所述根据所述标准出墨量阈值,确定所述像素点的出墨量阈值之前,还可以包括:
接收用户根据色靶图输入的所述标准出墨量阈值;
其中,所述色靶图包括CK部分、MK部分、YK部分;所述CK部分的多个色块中C和K的值均为100,M和Y的值等量递增;所述MK部分的多个色块中M和K的值均为100,C和Y的值等量递增;所述YK部分的多个色块中Y和K的值均为100,C和M的值等量递增。
具体地,所述标准出墨量阈值可以由所述用户打印色靶图后目视判断得到。图4为本实施例提供的出墨量控制方法中色靶图的示意图。如图4所示,每一部分都包括12个色块,每个色块下方的数字表示该色块的CMYK值。
对于CMYK值大于200的色块来说,K的值都是100,每一部分的主色(例如CK中的C)值也是100,另外两种次色(例如CK中的M和Y)的值等量递增,也就是说,每一个色块相对于上一个色块来说两种次色增加的值均相等。例如对于CK部分,每个色块中C和K的值均为100,每一个色块与前一个色块相比,M和K都增大固定值。MK部分和YK部分与此类似。
其中,在图像印刷时,C、M、Y、K每个都可以使用从0至100的值,从而组成不同的颜色,例如,亮红色可能包含2%青色C、93%洋红M、90%黄色Y和0%黑色K。由于很多打印机的K墨不仅存在浅K,还存在浅浅K等,所以K版可能相比于其它版来说更容易造成堆墨。因此,本实施中,色靶图由CK、MK、YK三个部分组成,对于每一部分来说,主色和黑色K的值为100、两种次色的值小于主色的值,这种方案相较于C值=M值=Y值=K值来说更加容易堆墨,因此,本实施例中的色靶图能够更加有效地测试出出墨量阈值。
对于CMYK值大于200的色块来说,一般不会引起堆墨,因此,其C、M、Y、K的值可以相同或相近,不必遵循主色与K的值必须为100的规则,也不会影响用户对出墨量阈值的判断。
用户可以通过视觉观测挑选出刚好不会堆墨的色块,然后通过上述计算像素点出墨量的方法来计算该色块所对应的出墨量,作为出墨量阈值。通过观察色靶图中三个部分的色块,可以分别计算得到三个出墨量阈值,以最小的出墨量阈值作为标准出墨量阈值。
将色靶图分为三个部分是因为考虑到CMY三版使用的分色一般是不同的,也就是说使用的墨滴浓度的组合以及墨滴用量是不同的,在不知道哪版更可能造成堆墨的情况下,选最小的用出墨量阈值才能保证输出的图像不会堆墨。
图4所示的色靶图中,各个色块都包含有白色细线,对于油墨扩散比较严重的纸张,白色细线就会被淹没,用户可以根据细线被淹没的程度来选择期望的出墨量阈值,如果对印刷质量要求较高,则出墨量阈值可以较小,如果对印刷质量要求不高,出墨量阈值也可以适当提高。
实施例二
图5为本发明实施例二提供的出墨量控制装置的结构示意图。如图5所示,本实施例中的出墨量控制装置,可以包括:
出墨量确定模块501,用于根据像素点的四种标准颜色CMYK值,确定所述像素点的出墨量;
出墨量阈值确定模块502,用于根据标准出墨量阈值,确定所述像素点的出墨量阈值;
砍墨模块503,用于判断所述像素点的出墨量是否大于所述像素点的出墨量阈值;若大于,则减小所述像素点的CMYK值,直至所述像素点的CMYK值对应的出墨量小于等于所述像素点的出墨量阈值。
本实施例中的出墨量控制装置具体可用于实现图1所示出墨量控制方法,其具体过程此处不再赘述。
本实施例提供的出墨量控制装置中,通过待打印图像中像素点的CMYK值,确定所述像素点的出墨量,并为每个像素点确定一个出墨量阈值,通过判断所述像素点的出墨量是否大于所述出墨量阈值来决定是否对所述像素点进行砍墨,能够有效避免堆墨现象。
在上述实施例提供的技术方案的基础上,优选的是,所述出墨量阈值确定模块502,具体用于:
以所述标准出墨量阈值作为所述像素点的出墨量阈值;
或者,
在所述标准出墨量的预设范围内随机选取一个数值,作为所述像素点的出墨量阈值。
在上述实施例提供的技术方案的基础上,优选的是,所述出墨量确定模块501,具体包括:
第一确定单元,用于根据所述像素点的CMYK值以及分色层次,确定青色C、品红色M、黄色Y和黑色K中每一色彩的挂网输出值;
第二确定单元,用于根据所述色彩对应的挂网输出值确定所述色彩的出墨量;
出墨量获取单元,用于将所述像素点的所述C、所述M、所述Y和所述K的出墨量相加,得到所述像素点的出墨量。
在上述实施例提供的技术方案的基础上,优选的是,所述第二确定单元,具体用于:
根据所述分色层次,确定所述色彩的每一层次中至少两种不同浓度的墨滴分别对应的用量;
根据所述挂网输出值,确定所述色彩对应的不同浓度的墨滴用量;
将所述不同浓度的墨滴用量相加,得到所述色彩的出墨量。
在上述实施例提供的技术方案的基础上,优选的是,所述出墨量阈值确定模块502,还用于:
在所述根据所述标准出墨量阈值,确定所述像素点的出墨量阈值之前,接收用户根据色靶图输入的所述标准出墨量阈值;
其中,所述色靶图包括CK部分、MK部分、YK部分;所述CK部分的多个色块中C和K的值均为100,M和Y的值等量递增;所述MK部分的多个色块中M和K的值均为100,C和Y的值等量递增;所述YK部分的多个色块中Y和K的值均为100,C和M的值等量递增。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。