>罗鸣,陈轶佳,龙建忠
(四川大学电子信息学院,四川成都 610064) 在水利水电工程实践中,掌握建站地区的地质情况十分重要。将与地质情况相关的地勘图像如岩石样本刨面图像、宏观地貌图像等输入计算机,利用专门的图像处理软件对其进行处理和分析是一种重要的手段。
现有的图象处理,大都是通过安装在本机上的功能软件来实现的。这种本地图象处理的形式有其自身的优点,但是在协同工作方面也有着不可克服的局限性。这种局限性主要体现在用户的数量受限制。很大一部分专业性的图象处理软件涉及到知识产权问题,是不能够让任意数量的用户使用的。这给实际的工作带来了很多限制。
随着电力系统信息化建设的发展,网络技术在电力系统中已被广泛应用。利用网络进行分布式计算是网络技术发展的大趋势,而本地图像处理将不能适应这种趋势的发展。通过网络以在线图象处理的方式来共享图象处理软件的功能,能够克服本地图像处理的局限性,提高工作效率。研究这项技术在电力系统中的应用,对电力系统信息化建设具有很大的现实意义。微软推出的新一代软件开发语言C#为快速开发在线图象处理系统提供了可能。本系统将C#的图象功能和ASP.NET技术有效地结合在了一起,能够单纯通过网页完成动态获取和显示图象的功能,完成与用户的交互,实现了一些如二值化、调整对比度等图象处理功能。
1 地勘图像在线处理系统原理及实现
在线图像处理系统采用先进的B/S(浏览器/服务器)模式进行开发,所有的图像处理功能均在服务器上加以实现,客户端只需通过浏览器调用这些功能。甚至图像处理功能都可以单独分理出来,以提供Web服务(WebServices)的形式供运行在网络服务器上的网络应用程序调用。采用这种模式,可以很好的适应分布式计算处理的要求。
我的地勘图象在线处理系统其实是一个网络应用程序(WebApplication),它构筑在Microsoft的ASP.NET技术基础之上,利用C#完成功能代码。
1.1 ASP.NET和C#
ASP.net是一种建立在通用语言(CLCommonLanguage)上的程序构架,能被用于建立强大的Web应用程序。ASP.net提供许多比现在的Web开发模式强大的的优势。
C#是基于微软下一代操作平台.NET,面向对象的全新的开发语言,集VC的灵活性和VB的易用性于一身,同时还具有与JAVA相同的跨平台特性,是一种现代的面向对象语言。C#增强了开发者的效率,同时也致力于消除编程中可能导致严重结果的错误。C#使C/C++程序员可以快速进行网络开发,同时也保持了开发者所需要的强大性和灵活性。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的人可以很快的转向C#。
采用C#通过ASP.Net构建系统能够很好地实现在线图像处理系统的设计意图。
1.2 系统原理
系统由六部分组成:
1)用户模块:该模块就是使用者。用户通过Web窗体界面(图象处理界面)向服务器发出以特定方式处理特定图象的请求。
2)用户权限控制模块:利用身份验证机制,和用户权限表,将用户权限信息发往图象源和图象处理界面模块。
3)图象源:提供源图象的模块,其中封装了数据库访问功能,根据接收到的用户信息(访问目标和权限),将图象信息(图象地址)发往图象处理界面模块中的图象控件中去。
4)图象处理界面模块:该模块完成接受用户处理请求和动态显示图象的功能。该模块中的图象控件负责图象的动态显示。模块中的交互子模块负责接受用户请求,根据用户请求发送不同命令到图象处理功能模块。
5)图象处理功能模块:该模块由一系列的后缀名为ASPX的文件构成图象处理子功能模块,每一个子模块独立负责一项图象处理功能。这种结构比较利于灵活控制系统具有的图象处理功能。各子模块通过调用图象处理类里的功能函数,完成相应的处理功能。
6)图象处理类:该类是一个C#文件,封装了加载、保存图象的功能以及各图象处理函数,该类是我们图象处理系统的核心部分,该类的功能好坏直接影响了系统的性能。
1.3 实现系统的关键
图像处理界面模块、图象处理功能模块和图象处理类这三部分共同构成了在线图象处理系统的核心。利用微软的VS.NET可视化开发工具在Win2000Server系统下开发了地勘图象在线处理系统。该系统能够动态查询、显示地勘图象同时还能对相应的图象进行在线处理。
实现在线处理功能的关键有两点:首先要能够动态显示源图象:根据用户请求来动态设定处理的图象。其次要能像调用函数一样将处理的结果图显示到用户的浏览器窗口中。
图象处理界面模块中的图象控件负责图象的动态显示:通过动态设定图象控件的ImageUrl属性可以很容易地达到目的。图像控件的ImageUrl属性的值可以设定为具体的图象的路径,还可以设定为一个ASPX页面。后者是能动态显示处理结果的关键。例如:
Image1.ImageUrl=”Image_Gery.aspx?location=”
+location;
其中的”?location=”+location”表示从本页面传递名为location的参数以及它的值。而Image_Gery.aspx就是图象处理功能模块中的图象二值化功能模块。类似于函数的调用过程,图象控件调用“函数”Image_grey.aspx,传入“参数”location,返回图象数据到图象控件。利用这种方法,就可以非常灵活地根据需要显示不同的图象了。
将“图象处理”的具体功能封装在了图象处理类中。在图象处理子模块中通过定义一个该类的对象将其实例化,并通过该对象调用相应的图象处理函数,把处理结果放在该类的一个Bitmap类型成员变量bitmap中,然后将图像数据通过stream流返回到请求端,从而实现了以函数调用的方式来请求图像处理结果。下面给出关键步骤:
1.4 图像处理性能的优化
图象处理功能类的性能直接影响了整个系统的性能。访问图象的每个象素的速度是影响图像处理速度的重要因素。采用系统提供的GetPixel方法来访问象素虽然很方便,但是效率很低。在采取了通过unsafe指针直接访问象素内存地址的方法后,处理速度得到了极大的提高。通过下面的表格,可以清楚地看到这两种方法的差别:可见,采用unsafe指点针访问图象象素确能大幅度提高处理的速度。提高处理的速度。
如果要在C#程序中使用指针的话,必需将该类显式地声明为unsafe类型,并且设定相应的编译器设置,不然将无法通过编译。
2 总结
传统的图像本地处理方案不光对用户数量有限制,同时由于专用图像处理软件对硬件系统的要求往往比较高,当需要多套相同软件时需要同时配置几台高配置的计算机,因而硬件投资也比较大。而采用在线处理的方案,只需要一台高配置的服务器提供图象处理的网络功能,就可以实现多个用户共享软件功能的目的。用户的计算机只要可以浏览网页就行,对硬件的要求大大降低,从而节约了资金,避免了重复配置的浪费。当对图像处理的要求提高时,可以通过提供Web服务的形式添加功能,具有积木式构建软件功能的特点,具有很高的灵活性。
采用在线处理方案甚至可以对不同权限的用户使用的软件功能进行定制,非常的灵活。只要每种权限的用户能够使用的功能预先定义好了,那么每个用户使用在线浏览功能时,见到的就只有该用户权限能使用的功能的界面。
在线图像处理技术的适应范围是很广的,在电力系统中的各个方面他都会有用武之地。例如,可以利用这项技术实现网络上的基于图象内容的检索,根据用户的要求,检索到用户理想的目标图象。
目前这项技术遇到的问题是:要实现更方便的人机交互操作还有待技术的进一步发展。同时,网络速度也是制约它发展的一个瓶颈。
相信随着技术的不断进步,今后在线图象处理技术必将在我国电力系统的现代化信息建设中发挥更重要的作用。
四川电力技术