摘 要:本实验采用半色调技术对图像进行打印和显示。使用实验后面所给出了用点模式近似表示的0到9,10个灰度级来表示一张图片。每一个灰度级用一个3*3的黑白点模式表示。用3*3全黑点近似表示灰度级为0的黑色灰度级,3*3全白点近似表示灰度级为9的白色灰度级。其它的点模式表示这二者之间的灰度级。由于用3*3个像素点代替原来一个像素点,因此在有限的打印面积上需要考虑图像尺寸的大小,故需要对输入图像进行预处理。在此基础上,编写一个生成尺寸为256*256大小的灰度渐变测试图像的程序。输出图像第1列像素灰度为0,第2列像素灰度为1,以此类推,最后1列像素灰度为255,并将这张图片作为半色调技术的打印素材。本实验的输出图像可以在A4纸上打印而不会超出区域,该实验是在MATLAB R2014a平台上实现。
一、实验原理
1.半色调打印技术
本实验采用半色调技术对图像进行打印和显示。使用实验后面所给出了用点模式近似表示的10个灰度级来表示一张图片。每一个灰度级用一个3*3的黑白点模式表示。用3*3全黑点近似表示灰度级为0的黑色灰度级,3*3全白点近似表示灰度级为9的白色灰度级。因此,我构建一个三位矩阵来表示10个灰度级,其MATLAB代码段如图1所示。
图1.10阶灰度矩阵
图2给出了将一张经过半色调技术处理过后的图片进行局部放大的图片,可以看到每个元素均按照10个灰度级的矩阵来排列。
图2.局部放大的处理后的照片
2.图像缩放处理
由于用3*3个像素点代替原来一个像素点,因此在有限的打印面积上需要考虑图像尺寸的大小,故需要对输入图像进行预处理,若判断读入的图像尺寸过大,调用函数imresize()缩小图像。该函数用于对图像做缩放处理。输入help imresize获得该函数的帮助信息,该函数的调用格式如下: