您好,欢迎访问三七文档
一.技术论述本实验后面的图像给出了用点模式近似表示的10个灰度级。每一个灰度级用一个3x3的黑白点模式表示。本实验后面的图像给出了用点模式近似表示的10个灰度级。每一个灰度级用一个3x3的黑白点模式表示。白色灰度级。其它的点模式表示这二者之间的灰度级。基于这样的点模式的灰度级打印方案称为半色调技术。亦即输入图像中的每一个像素将对应于打印图像中的3x3个像素,这样在水平和垂直方向上的空间分辨率将减少为原始图像的33%。实验中原始图像尺度分辨率是否减小依赖于输入图像的尺寸,如下面(a)中所述。二.实验结果和讨论(a)编写一个使用上述点模式的半色调技术打印灰度图像的程序。要求程序可以对输入图像的尺度(尺寸)进行调整,以便使打印图像不超出A4纸(21.6x27.9cm)的打印区域;要求程序在打印输出以前将输入图像的灰度级范围变换到半色调的整个灰度范围。程序参考附录(b)编写一个生成尺寸为256x256大小的渐变测试图像的程序。输出图像第1列像素灰度为0,第2列像素灰度为1,以此类推,最后1列像素灰度为255。使用(a)中编写的灰度图像打印程序打印该图。原图和经过本色调处理的图像如图2-1和图2-2所示。(c)使用(a)中编写的灰度图像打印程序打印课本图2.22(a)到(c)。原图和打印结果如图2-3,图2-4,图2-5,图2-6,图2-7和图2-8所示。打印结果是否符合课本图2.23给出的结论?并给出解释。实验结果讨论:打印的结果符合课本图2.23的结论,图2-3图像具有较少的细节,图2-5图像具有中等程度的细节,图2-7的图像具有大量的细节,经过半色调技术打印后,细节较多的图2-7使人感受到图像质量变化不大,这一实验表明,当图像中的细节增加时,等偏爱曲线会变得更加垂直,需要的灰度级较少。三.附录%功能:1.生成尺寸为256x256大小的渐变测试图像的程序,用(a)中编写的灰度图像打印程序打印该图2.使用(a)中编写的灰度图像打印程序打印课本图2.22(a)到(c)%wH=4;wL=2;%产生一个256*256大小的渐变测试图像,并将其打印出来functionexe2()image256=zeros(256,256)for(i=1:256)image256(:,i)=(i-1)*ones(256,1);endimage256=uint8(image256);imwrite(image256,'picture256.bmp')subplot(wH,wL,1);imshow(image256);title('图2-1:256*256原图像');%对程序生成的256*256大小的渐变测试图像实行半色调变换,并打印y=convert(image256);subplot(wH,wL,2);imshow(y);imwrite(y,'p2-2.jpg');title('图2-2:半调色变换后256*256图像');%对课本图2.2(a)进行半调色变换,并打印对比img222a=imread('E:\电子与通信工程\数字图像处理\DIP作业资料\Labimages\Fig2.22(a).jpg');subplot(wH,wL,3);imshow(img222a);title('图2-3:图像2.22a原图');y=convert(img222a);subplot(wH,wL,4);imshow(y);imwrite(y,'p2-4.jpg');title('图2-4:图像2.22a半色调变换图');%对课本图2.2(b)进行半调色变换,并打印对比img222b=imread('E:\电子与通信工程\数字图像处理\DIP作业资料\Labimages\Fig2.22(b).jpg');subplot(wH,wL,5);imshow(img222b);title('图2-5:图像2.22b原图');y=convert(img222b);subplot(wH,wL,6);imshow(y);imwrite(y,'p2-6.jpg');title('图2-6:图像2.22b原图半色调变换图');%对课本图2.2(c)进行半调色变换,并打印对比img222c=imread('E:\电子与通信工程\数字图像处理\DIP作业资料\Labimages\Fig2.22(c).jpg');subplot(wH,wL,7);imshow(img222c);title('图2-7:图像2.22c原图');y=convert(img222c);subplot(wH,wL,8);imshow(y);imwrite(y,'p2-8.jpg');title('图2-8:图像2.22c原图半色调变换图');半色调打印函数convert()functiony=convert(x)[r,c]=size(x);%得到这个图像有多少行多少列%A4纸的21.6*27.9cm换算成英寸为8.5*10.98pixelsperinch=96;widthmaxpixels=8.5*pixelsperinch;heighminpixels=11*pixelsperinch;rscale=double(r)/widthmaxpixels;cscale=double(c)/heighminpixels;scale=rscale;if(scalecscale)scale=cscale;endif(scale1)downsampling_ave(x,fix(scale));endgimg=fix(double(x)/25.6);%求这个点的灰度级为10个灰度级中的哪一个y=zeros(r*3,c*3);%先清掉灰度矩阵%得到一个10维的灰度级dotz=zeros(3,3,10);dotz(1:3,1:3,1:5)=zeros(3,3,5);dotz(1,2,2:5)=255*ones(1,1,4);dotz(3,3,3:5)=255*ones(1,1,3);dotz(1,1,4:5)=255*ones(1,1,2);dotz(3,1,5)=255;dotz(1:3,1:3,6:10)=255*ones(3,3,5);dotz(2,2,6:9)=zeros(1,1,4);dotz(2,1,6:8)=zeros(1,1,3);dotz(3,2,6:7)=zeros(1,1,2);dotz(2,3,6)=0;%把图像中的每个像素点换成某个灰度级的3*3的矩阵for(i=1:r)for(j=1:c)level=gimg(i,j);y((i-1)*3+1:i*3,(j-1)*3+1:j*3)=dotz(1:3,1:3,level+1);endendy=uint8(y);%强制转为8位整数end
本文标题:ImagePrintingProgramBasedonHalftoning(基于半色调技术的图像打印
链接地址:https://www.777doc.com/doc-2878658 .html