对比色配色方案数字化生成技术的研究

时间:2022-10-30 03:57:42

对比色配色方案数字化生成技术的研究

摘 要:以RGB颜色模式为例,以九宫格为生成对比色目标,利用全组合算法建立数字化配色方案模型,根据不同基值对结果进行设置,完成了无限组合配色方案的有限生成方案。为配色方案图谱提供了一种便捷的生成算法,适合网页设计、平面设计、服装设计,甚至在服装搭配、家居设计和家具搭配等方面都具有应用价值。

关键词:数字化配色方案;图像处理;全组合算法;对比色

中图分类号:TP311 文献标识码:A 文章编号:2095-1302(2014)12-00-02

0 引 言

所谓配色,就是色彩按照形式美的法则搭配,达到一种和谐一体的效果。在实际应用中,色彩是通过人的印象或者联想来产生心理上的影响,通过简单的色谱很难实现这一点,这些艺术通感形成的多种多样的法则如对称、均衡、节奏、韵律、对比、比例、主从、尺度、明暗、虚实、多样统一等。而配色的作用就这在这些法则的指导下,通过特定环境和方式的展示来满足人们各方面的要求[1]。

配色主要有两种方式,一是直接通过固定色彩的对比达到配色的效果;另一种是通过色彩的变换给人以心理层面感观传达,从而达到配色的效果。各种配色方案的组合是无穷的,不可能全部罗列[2]。

本文通过计算机光学原理进行分析,针对对比色的配色方案的生成技术进行研究,利用RGB色彩的数字化变换、全组合编码算法等技术在九宫格中实现对比色无限组合的有限自动生成方案。

1 数字化配色方案原理

光学三原色是由红、绿、蓝组成,颜料三原色由红、黄、蓝组成,由于计算机对于色彩是基于色光处理,而其色彩模式有RGB、CMYK、LAB、HSB等。本文以RGB颜色模式为例,利用全组合编码算法建立数字化配色方案模型,实现对比色配色方案的自动生成[3]。

2 色彩模型分析

2.1 对比色基本图谱

对比色配色方案基本图谱一般是“回”字形,用数字化定义可采用九宫格来实现。主色在九宫格中央,背景色分布在周围,在视觉上形成“回”字形图谱[4]。为研究方便,在图谱的下面6个单元格分别标注主色和背景色的数值,如图1所示:

图1 对比色基本图谱数字化模型

2.2 配色方案基值

如果按照等差数列的方式生成配色方案,则需要分析RGB的数值范围:

R:[0,255] G:[0,255] B:[0,255]

24位RGB颜色发色数是1 677万多色,其中R、G、B的数值都在0~255之间,通过R、G、B的等差增长来实现全组合配色方案。若选用128做为公差,那么R、G、B分别可以选择0、128、255三种数值,其单色全组合需要27种。因为对比色是由主色和原色构成,那么配色方案需要27*27=729种。可以这样定义:

设公差为c,分段数为int(255/c),必须包括首尾0和255,则增量n为int(255/c+2);

主色(或原色)总数S为:S=3^int(255/c+2);

对比色配色方案数N= S* S=3^(int(255/c+2)+int(255/c+2));

根据全组合编码算法,R/G/B的计算为:(ΔR/G/B Mod 3)*c

主色(或原色)的数值为:RGB((ΔR Mod 3)*c,(ΔG Mod 3)*c,(ΔB Mod 3)*c)

但是公差不一定是255的约数,尤其是以二进制为基础的计算机中,如32、64、128都是以2为底的n次方的数值,这些数值一般很容易做为公差,这样增量的计算以及ΔR/G/B要均匀的分布时,存在误差修正的问题。

2.3 公差为128时的误差修正

当128做为公差时,按照上述要求在等差数列中必须包括0和255,根据公式计算ΔR/G/B =n*128。0为初值, n为0~2,ΔR/G/B 计算结果如下:

0*128=0;1*128=128;2*128=256。

计算结果0,128,256为等差数列,但是显然256溢出。

如果对公式进行修正ΔR/G/B =n*128-1,ΔR/G/B 计算结果如下:

0*128-1=-1;1*128-1=127;2*128-1=255。

计算结果-1,127,255为等差数列,虽然255在数值范围内,但是显然-1溢出了。

所以需要引入误差修正及特殊处理方能达到效果:公差c增加-0.5的误差修正,利用Round函数进行四舍五入,则ΔR/G/B =Round(n*(128-0.5)+0),计算结果如下:

Round(0*(128-0.5)+0)=0;

Round(1*(128-0.5)+0)=128;

Round(2*(128-0.5)+0)=255

计算结果为0,128,255均在RGB数值范围内。

2.4 公差为64时的误差修正

同理,公差为64时,公差c增加-0.16的误差修正,整体增加0.13,利用Round函数进行四舍五入,则ΔR/G/B =Round(n*(64-0.16)+0.13),计算结果如下:

Round(0*(64-0.16)+0.13)=0;

Round(1*(64-0.16)+0.13)=64;

Round(2*(64-0.16)+0.13)=128;

Round(3*(64-0.16)+0.13)=192;

Round(4*(64-0.16)+0.13)=255;

计算结果0,64,128,192,255均在RGB数值范围内。

3 全组合编码公式在配色方案中的应用

为研究方便,在图谱的下面单元格中分别标注主色和背景色的RGB数值。主色和背景色都对应了RGB三个颜色,每个颜色都要按照公差进行扩展,当分段数增量为n时,6个数值都要扩展n次,也就是6个数值都有n个选择,按照排列组合来说,配色方案共有n^6种情况[5]。配色方案的扩展算法如下:

ΔR=R增+Round(n*(c+误差修正)+总修正)

ΔG=G增+Round(n* (c+误差修正)+总修正)+Round (n*(c+误差修正)+总修正)*255

ΔB=B增+Round(n* (c+误差修正)+总修正)+Round (n*(c+误差修正)+总修正)*255+Round(n*(c+误差修正)+总修正)*255*255

计算色彩总偏移量按照上面的算法可以得到当前颜色YRGB:

YRGB=ΔR/G/B+ΔR*Rd+ΔG*Rd*Rr+ΔB*Rd*Rr*Rb

4 配色方案自动生成算法

4.1 数据定义

Dim A_T As Double

Dim S_Code1 As Double

Dim S_Code2 As Double

Dim A1_T As Double

Dim A2_T As Double

按照对比色基本图谱数字化模型进行定义,根据公差64对RGB进行扩展,如图2所示。

图2 公差64的对比色配色方案

4.2 配色方案生成算法

A_T = (2 ^ (Int(Text6.Text) - 1)) * (8 ^ (Int(Text5.Text) - 1)) * (4096 ^ (Int(Text7.Text) - 1))

S_Code1 = S_Code - Int(S_Code / (2 ^ 27)) * (2 ^ 27)

S_Code2 = Int(S_Code / (2 ^ 27))

A1_T = A_T - Int(A_T / (2 ^ 27)) * (2 ^ 27)

A2_T = Int(A_T / (2 ^ 27))

c = (A1_T And S_Code1)

If (A1_T And S_Code1) = A1_T Then

Text8.Text = 1

Else

Text8.Text = 0

End If

If (A2_T And S_Code2) = A2_T Then

Text9.Text = 1

Else

Text9.Text = 0

End If

If (Int(Text8.Text) And Int(Text9.Text)) Then

Text4.Text = A_T & "0"

Else

Text4.Text = A_T & "255"

End If

5 计算结果

按照生成算法执行后,可自动得到对比色配色方案结果(共3 375个结果,中间结果省略)。

6 结 语

通过分析数字色光的特性,利用数字化技术和全组合编码算法完成了以RGB颜色模式为基础的对比色配色方案,配色方案以“回”字形为基本图谱,按照九宫格形式完成了无限组合配色方案的有限生成方案。算法优化、高效,同时数值清晰,适合网页设计、平面设计、服装设计,甚至在服装搭配、家居设计和家具搭配等方面都具有应用价值。

参考文献

[1]郭涛,李芳芳.关于多媒体演示文稿色彩应用的研究[J].甘肃科技,2012,28(6):16-19.

[2]张红.多媒体教学中存在的问题及对策[J].安徽农业科学,2009,37(22):10801,10811.

[3]刘正岐,郭涛.基于逻辑运算的多维数据全组合编码算法研究[J]. 物联网技术,2011,1(9):41-44.

[4]蔺世军.多媒体课件制作的探索[J].中国科教创新导刊,2011(16):159

[5]刘甘娜,朱文胜,付先平.多媒体应用基础[M].2版.北京:高等教育出版社,2000.

上一篇:基于ZigBee的道路照明智能控制系统的设计 下一篇:三自由度转台的复合控制策略