,欢迎光临!
加入收藏设为首页请您留言
您当前位置:网站首页 >> 华中地区 >> 基于Java的图像过滤器技术的实现-上海联兵环保免费电话:400-600-5030

基于Java的图像过滤器技术的实现-上海联兵环保免费电话:400-600-5030

2011-09-13 15:14:07 来源:中国过滤器网 浏览:1

摘 要:介绍了Java技术的图像加载显示原理以及操作模型,然后通过一个应用实例详细讨论了基于Java的图像过滤效果的技术实现。Java的图像处理技术是Java实现网络交互功能的前提和基础,也为实现Java强大的动画功能提供了技术铺垫,而图像过滤器技术则在对一些图像的复杂处理上大有用武之地。
关键词:Java;图像处理;过滤器
中图分类号:TN911·73      文献标识码:A      文章编号:1005-3751(2003)10-0037-02
引 言
Java是一整套开发使用平台,围绕它所发展的技术很多。Java作为面向对象的多媒体网络程序设计语言,对图像处理技术的强大支持是它的特色之一。
1 图像的加载、显示以及Java操作图像的模型一般来说,对图像的操作包括加载图像和显示图像。
Applet运行时,先是找到图像文件存储的位置,将它装载到内存里,然后在适当的时候将图像文件显示到屏幕上。
在Java中,可以直接载入并输出的图形的文件格式有Gif和Jpeg等。Applet类中提供了getImage( )方法用来将准备好的图像文件装载到Applet中,前提是已经指明了图像文件所存储的位置。由于Java语言是面向网络应用的,因此文件的存储位置并不局限于本地机器的磁盘目录,而大部分情况是直接存取网络中Web服务器上的图像文件。Java采用URL来定位图像文件的网络位置。
getImage( )方法将图像文件从网络上装载进来后,就交给Image对象管理。然后再利用Graphics类中的drawImage( )方法显示该图像,它能完成将Image对象中的图像显示在屏幕的特定位置上,就像显示文本一样方便。
Java操作图像的模型比其它的模型要复杂。在该模型中,Java使用了图像制作者(ImageProducer)和图像消费者(ImageConsumer)的概念。顾名思义,图像制作者是图像数据的源,图像消费者是使用图像数据的对象。Image-Producer使用ImageConsumer的SetPixels( )方法向消费者描述图像[1]。
可以跟踪一个从网络上加载图像的过程来说明这两者之间的相互关系。ImageProducer开始读取网络上的图像,首先从图像中读取的是图像的宽度和高度。制作者使用setDimension( )方法通知它的消费者图像的尺寸。接着,制作者读取图像的颜色映射。从颜色映射中确定图像使用的颜色模式,然后调用消费者的setColorModel( )方法。制作者调用消费者的setHint( )方法告诉消费者它打算如何传递图像的像素,这使得消费者可以尽可能地优化它的像素处理。现在制作者开始提供像素了,它调用消费者的SetPixels( )方法传递该图像。最后,制作者调用消费者的imageComplete( )方法说明图像已经传送完毕,这样就完成了加载图像的全过程。如图1所示。
2 Java图像过滤器技术
通过上面的分析可以看出,Java的图像模型允许用户可以轻松地过滤图像。这里过滤器的概念类似于摄影中的滤色镜的概念。它位于源图像(图像制作者)和目标图像(图像消费者)之间。过滤器在图像被传递给图像消费者时用来修改图像[2]。

图像过滤器主要应用于一些复杂的图像处理。过滤器对图像的处理是像素级的,而这种过滤处理的基础是ImageFilter类和它的抽象子类RGBImageFilter。Image-Filter是所有过滤器的基类,扩展它几乎可以对图像作出你能想象到的任意的变换,但是直接继承ImageFilter实现自己的过滤器会非常麻烦。可以从ImageFilter的子类———RGBImageFilter这个抽象类开始。比起它的父类ImageFilter来说,扩展RGBImageFilter就显得相对简单一些。查看JDK文档可以看到,RGBImageFilter有一个抽象方法:int filterRGB(int x, int y, int rgb),一般的类继承它以后都需要实现这个抽象方法。下面就通过一个图像的透明处理来说明如何实现图像过滤器技术。
设计思路:
程序定义了两个类,一个是透明过滤器类Transpar-entImageFilter,该类继承自RGBImageFilter,它的构造函数要求传入原始图像的宽度和高度。该类实现了filter-RGB的抽象方法。缺省的方式下,该函数将x,y所标识的像素的ARGB值传入,然后按照一定的逻辑处理后返回该像素新的ARGB值。DirectColorModel类用来将ARGB值独立分解出来。图像的Alpha值代表该像素的透明程度,这里所定义的这个过滤器就是使图像随着高度线性改变透明程度。另一个就是FilterImageDemo类,继承自Applet类。主要任务就是实例化透明过滤器类对象、创建新的过滤后的图像并显示出来。程序流程如图2所示。




3 方案改进
在实际应用中,可以在客户端增加代码来验证用户输入的合法性,还可以允许用户通过更多的关键词或者组合关键词进行查询,来完善系统功能和提高系统的可靠性。
4 结 论
以XML文档为数据载体,通过客户端编程进行XML数据检索的WEB查询方案,减小了服务器的负荷,提高了服务器端的运行效率,因此具有一定的通用性和实用性。

 

上海联兵环保科技有限公司
地址:上海市松江区工业区茸北分区茸阳路69号
总机:021-51691929
传真:021-57784244
免费电话:400-600-5030
技术支持:13641659499
E-mail:zhanglianbing@126.com
http://www.shlbhb.com

发表评论
网名:
评论:
验证:
共有0人对本文发表评论查看所有评论(网友评论仅供表达个人看法,并不表明本站同意其观点或证实其描述)
赞助商链接
关于我们 - 联系我们 - 咨询联兵