情况下利用图案化技术呢?一种很自然的想法是:如果用M2阵,则将原图中每8×8个点 中取一点,即重新采样,然后再应用图案化技术,就能够保持原图大小。实际上,这种方法 并不可行。首先,你不知道这8×8个点中找哪一点比较合适,另外,8×8的间隔实在太大 了,生成的图象和原图肯定相差很大,就象图4.1最右边的那幅图一样 我们可以采用这样的做法:假设原图是256级灰度,利用 Bayer抖动表,做如下处理 f(gyx]>>2)> bayer&7[x&7then打一白点else打一黑点 其中,xy代表原图的象素坐标,gyx代表该点灰度。首先将灰度右移两位,变成64级, 然后将x,y做模8运算,找到 Bayer表中的对应点,两者做比较,根据上面给出的判据做 处理 我们可以看到,模8运算使得原图分成了一个个8×8的小块,每个小块和8×8的 Bayer 表相对应。小块中的每个点都参与了比较,这样就避免了上面提到的选点和块划分过大的问 题。模8运算实质上是引入了随机成分,这就是我们下面要讲到的抖动技术 图45就是利用了这个算法,使用M( Bayer抖动表)阵得到的;图6是使用M阵得到的 可见两者的差别并不是很大,所以一般用 Bayer表就可以了 图45利用M3抖动生成的图 图46利用M4抖动生成的图情况下利用图案化技术呢?一种很自然的想法是:如果用 M2 阵,则将原图中每 8×8 个点 中取一点,即重新采样,然后再应用图案化技术,就能够保持原图大小。实际上,这种方法 并不可行。首先,你不知道这 8×8 个点中找哪一点比较合适,另外,8×8 的间隔实在太大 了,生成的图象和原图肯定相差很大,就象图 4.1 最右边的那幅图一样。 我们可以采用这样的做法:假设原图是 256 级灰度,利用 Bayer 抖动表,做如下处理 if (g[y][x]>>2) > bayer[y&7][x&7] then 打一白点 else 打一黑点 其中,x,y 代表原图的象素坐标,g[y][x]代表该点灰度。首先将灰度右移两位,变成 64 级, 然后将 x,y 做模 8 运算,找到 Bayer 表中的对应点,两者做比较,根据上面给出的判据做 处理。 我们可以看到,模 8 运算使得原图分成了一个个 8×8 的小块,每个小块和 8×8 的 Bayer 表相对应。小块中的每个点都参与了比较,这样就避免了上面提到的选点和块划分过大的问 题。模 8 运算实质上是引入了随机成分,这就是我们下面要讲到的抖动技术。 图 4.5 就是利用了这个算法,使用 M3(Bayer 抖动表)阵得到的;图 6 是使用 M4 阵得到的, 可见两者的差别并不是很大,所以一般用 Bayer 表就可以了。 图 4.5 利用 M3 抖动生成的图 图 4.6 利用 M4 抖动生成的图