书签 分享 收藏 举报 版权申诉 / 17
上传文档赚钱

类型第6讲图像像素点的处理课件.ppt

  • 上传人(卖家):ziliao2023
  • 文档编号:6043008
  • 上传时间:2023-05-23
  • 格式:PPT
  • 页数:17
  • 大小:85KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第6讲图像像素点的处理课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    图像 像素 处理 课件
    资源描述:

    1、 第第6讲讲 图像像素点的处理图像像素点的处理 教学目标与要求教学目标与要求:l了解图像处理的原理以及双缓冲技术l了解Java捕获屏幕图像的原理教学重点、难点:教学重点、难点:1.教学重点:l图像处理的原理l图像处理具体执行步骤l双缓冲技术l如何捕获屏幕图像2.教学难点:l应用双缓冲技术进行图像处理提问提问:当我们成功地加载和显示图像,对所得到的图像的显示效果并不满意的情况下,我们将采取什么的方式来解决,以达到我们想要的显示效果呢?6.1 图像处理的原理图像处理的原理 获取加载了的图像所有像素值,对这些像素值进行相应的处理之后,重构一个新的图像。图像处理的方法有:图像变换、图像编码、图像压缩、

    2、图像解码等等。6.2 图像处理具体执行步骤为:图像处理具体执行步骤为:l使用MediaTracker类加载图像l实例化PixelGrabber类l使用其grabPixels()方法抓取图像像素,生成了图像像素数组l对这个数组进行各种变换l通过MemoryImageSource类将数组中的像素值重构一个新的图像l使用paint()将新的图像显示出来(1)MediaTracker类是一个跟踪多种媒体对象状态的实用工具类。媒体对象可以包括音频剪辑和图像,但目前仅支持图像。l要使用媒体跟踪器,需要创建一个MediaTracker 实例l调用addImage()方法向此媒体跟踪器正在跟踪的图像列表添加一

    3、个图像。另外,还可以为每个图像分配一个惟一的标识符,此标识符可控制获取图像的优先级顺序。l调用waitForID()方法开始加载由此媒体跟踪器跟踪且具有指定标识符的所有图像。其创建格式如下:MediaTracker tracker1=new MediaTracker(this);img=Toolkit.getDefaultToolkit().getImage(a.jpg);/其中0为图像的标识符 tracker1.addImage(img,0);/加载由此媒体跟踪器跟踪且标识符为0的图像 try tracker1.waitForID(0);catch(InterruptedException

    4、e)(2)实例化PixelGrabber类,提供了三种不同的构造方式:lPixelGrabber(Image img,int x,int y,int w,int h,boolean forceRGB)创建一个 PixelGrabber 对象,以便从指定的图像中抓取像素矩形部分(x,y,w,h)。forceRGB为像素的传递方式,其值为true时,表示以RGB方式传递像素;其值为false时,表示以图像构造器方式传递像素。l PixelGrabber(Image img,int x,int y,int w,int h,int pix,int off,int scansize)创建一个 Pixel

    5、Grabber 对象,以便从指定的图像中将像素矩形部分(x,y,w,h)抓取到给定的数组中。Off 为存放第一个像素的位置,通常取0;scansize为每行的像素个数,即图像的宽度。l PixelGrabber(ImageProducer ip,int x,int y,int w,int h,int pix,int off,int scansize)创建一个 PixelGrabber 对象,以便从指定 ImageProducer(图像构造器)所生成的图像中将像素矩形部分(x,y,w,h)抓取到给定的数组中。(3)PixelGrabber类的对象调用grabPixels()方法将抓取到的图像像素

    6、存入数组中,注意要使用try-catch结构。(4)针对该数组中的像素值,对其进行各种变换,以达到我们处理图像的目的。比如,可对其RGB值和Alpha值重新计算和赋值,从而得到一个具有不同透明度与颜色值的像素数组。(5)通过MemoryImageSource类构造一个使用变换过的数组为Image对象生成数据的ImageProducer对象imgprd,调用createImage(imgprd)方法便可产生一个新图像。MemoryImageSource类创建格式如下:ImageProducer MemoryImageSource(int w,int h,int pix,int off,int s

    7、can)构造一个使用默认 RGB ColorModel 中的整数数组为 Image 对象生成数据的 ImageProducer 对象。(6)通过paint()即可将新图像显示出来 应用示例:应用示例:Image1.java(本程序为改变图像的透明值)6.3 双缓冲技术双缓冲技术 l缓冲是在内存或显存中开辟一块与屏幕一样大小的存储区域,作为缓冲屏幕。将下一帧要显示的图像绘制到这个缓冲屏幕上面,在显示的时候将虚拟屏幕中的数据复制到可见视频缓存区里面去。l在Java程序中要实现这个技术,首先在缓冲区建立一个绘制图像的Graphics对象,进行paint()的操作,当完成了以后再把它显示到屏幕上,由于

    8、从缓冲区读取数据的速度很快,就不会出现闪烁了。双缓冲技术优缺点双缓冲技术优缺点:l优点:图形绘制过程是在不可见的虚拟屏幕中进行,所以可以消除屏幕的闪烁。l缺点:在显示的时候将虚拟屏幕中的数据复制到可见视频缓存区里面去,由于要复制大量的数据,速度可能就会慢一些。如何使用双缓冲建立图像缓冲区?如何使用双缓冲建立图像缓冲区?其创建方式如下所示:try img=createImage(800,600);/建立图像对象缓冲区 graphics=img.getGraphics();/得到绘制图像的graphics对象 catch(NullPointerException e)graphics.drawIm

    9、age(cropped,0,30,this);/在屏幕外的缓冲区中绘 /制图像g.drawImage(img,0,0,this);/在屏幕上显示图像 6.4 Java捕获屏幕图像的原理捕获屏幕图像的原理 “捕获屏幕图像”是比较接近操作系统底层的操作,这里我们提供一个“机器人”Robot类,该类用于产生与本地操作系统有关的底层输入、测试应用程序运行或自动控制应用程序运行。Robot类提供一个createScreenCapture()方法,可以直接将全屏幕或某个屏幕区域的像素复制到一个BufferedImage对象中,只需要将该对象写入到一个图像文件中,就完成了屏幕到图像的复制过程。(1)Robo

    10、t类createScreenCapture()方法的创建格式如下:BufferedImage createScreenCapture(Rectangle screenRet)将指定矩形区域内的屏幕像素复制下来产生一个BufferedImage对象。(2)Robot类应用的主代码段如下:Robot robot=null;try robot=new Robot();catch(Exception er)Rectangle screenRect=null;int width=getToolkit().getScreenSize().width;int height=getToolkit().getS

    11、creenSize().height;screenRect=new Rectangle(0,0,width,height);/将指定矩形区域内的屏幕像素复制下来产生一个BufferedImage对象BufferedImage image=robot.createScreenCapture(screenRect);/创建一个图像文件 File file=new File(ScreenCapture.jpg);/将截取到的屏幕图像写到图像文件file中 javax.imageio.ImageIO.write(image,jpg,file);repaint();public void paint(G

    12、raphics g)g.drawImage(image,0,0,800,600,this);(3)应用示例:MakeJPEG.java(应用Robot类捕获屏幕图像)教学总结:教学总结:1.掌握应用双缓冲技术进行图像处理,以及了解双缓冲技术优缺点。2.了解一些与操作平台有关的类:Toolkit、Robot等等,以及各自类的一些常用的方法,比如:Toolkit类中使用getScreenSize()方法获取屏幕的大小,getImage()方法来加载图像文件,而Robot类有个createScreenCapture()方法将指定矩形区域内的屏幕像素复制下来产生一个BufferedImage,然后通过paint()将数据缓冲区的图像绘制出来。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第6讲图像像素点的处理课件.ppt
    链接地址:https://www.163wenku.com/p-6043008.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库