基于Internet的远程数字图像处理
2014-07-24希仁娜·亚森李湘
希仁娜·亚森+李湘
摘 要: 为了实现远程图像处理可利用Internet建立网络平台,用户通过客户端提交待识别的图像,由服务器端调用图像处理程序进行图像处理后并返回结果给用户。这样可以大大减少人力、物力资源的消耗。网络平台开发可采用Apache+PHP+MySQL的组合,图像处理部分可采用VC++或Matlab完成。关键在于需正确地在PHP页面中调用图像处理程序,最终实现远距离图像处理。对网络平台的结构、设计、图像处理的步骤及如何正确在PHP页面中调用图像处理程序进行了说明,并阐述了开发此类系统的可行性、必要性。
关键词: 远程图像处理; 网络平台; 图像处理程序; 调用程序
中图分类号: TN919?34; TP393 文献标识码: A 文章编号: 1004?373X(2014)14?0114?03
Remote digital image processing based on Internet
XI Ren?na·YA Sen, LI xiang
(Department of Computer and Information Engineering, Xinjiang Agricultural University, Urumqi 830052, China)
Abstract: The remote image processing can be realized by establishing a network platform by the aid of Internet, in which the client delivers the images under recognition to the server?side which invokes image processing program to execute the image processing and then returns the results to the client. In this way, the consumption of manpower and material resources can be reduced greatly. The combination of Apache + PHP + MySQL can be adopted in Network platform development, and VC++ or Matlab can br used for image processing part. The key step is to correctly call the image processing program in the PHP page to realize the remote image processing. In this paper, the structure, design and image processing steps of the network platform, and how to correctly invoke the image processing program in the PHP page are illuminated. The feasibility and necessity of developing such a system are elaborated.
Keywords: remote image processing; network platform; image processing program; invoking
0 引 言
目前常用的图像识别方法主要有两种:
(1) 通过图像采集设备将图像直接输入到计算机,或将采集好的图像存入计算机,再通过图像识别软件在本机进行识别。
(2) 基于视觉技术的图像识别。即利用监控设备采集图像,利用计算机局域网传递到计算机,由图像识别系统进行识别。
第一种方法主要采用嵌入式开发,由图像采集设备采集完图像后直接进行识别,此类方法主要是针对目标对象的确认,常用在指纹、人脸识别中,整个过程在本地完成。第二种方法主要采用基于客户/服务器模式的计算机网络,在短距离内对目标对象进行识别,如:汽车牌照、机场跑道异物的识别等。此类系统主要用于对监控环境中出现的物体或对象进行识别,根据识别结果采用对应措施。
若用户对某物需要由专家或专业技术人员进行识别,则需要将图像传递给相关人员再由相关人员将结果反馈给用户,这样做将消耗较长的时间,有可能还会丧失处理问题的最佳时间。如农、林业中病虫害识别。
21世纪是以计算机网络为核心的信息时代,以Internet为代表的计算机网络得到了飞速的发展。大家可利用Internet的连通性和共享性,将采集好的图像通过客户端传递到服务器端,再由服务器端自动调用图像处理程序对图像进行识别,并将识别结果反馈给客户端。即建立一个基于浏览器/服务器模式的图像识别系统,这样在很大程度上节省了人力资源和时间,也缓解了鉴定需求的日益增加与专家相对较少这一尖锐矛盾。
1 系统总体设计与实现
基于Internet的图像识别,需要搭建网络平台供用户使用。整个系统可分为用户操作平台和服务器处理平台。用户操作平台应简单易操作,如果是公益性的平台就无需用户注册,用户只需提交图片,为了确保准确性可将用户提交的图片在网页中显示,使用户确认所需识别的图片后再提交到服务器端进行识别。图像文件先提交到服务器端的文件夹中,图像文件的基本信息(如:文件名、图像类型、提交时间等)则提交到数据库中,由服务器端调用图像识别程序从数据库中根据所提交图像文件的文件名从文件夹中提取该文件进行识别,并将识别结果返回到客户端。如图1系统总体结构图所示。
图1 系统总体结构图
2 网络平台的设计与实现
在诸多网络平台开发软件中比较流行的搭配方案为:Apache+PHP+MySQL[1]。APache 是目前应用最广的 Web 服务器,PHP 是一种类似ASP的服务器端脚本语言,而MySQL是一个小巧的数据库系统软件,特别适用于网站建设[2]。由于这三个软件均为自由软件,同时Apache,PHP 和 MySQL 的组合还可以跨平台运行,因此,这三个软件是架构基于数据库驱动的动态网站的最佳组合。
2.1 用户平台的设计与实现
用户平台即用户操作界面,为方便各类用户群,界面应该设计的简单、易用。用户通过该界面将需识别的图像文件提交到图像处理端即服务器端。因此,界面需设计“浏览”和“提交”按钮,在“浏览”按钮旁应设置文本框。用户点击“浏览”按钮选择在本地存储的待识别的图像文件,该文件的完整路径及文件名会在文本框中显示,再通过“提交”按钮将图像文件提交到服务器端中已设置好的文件夹中。同时,将图像文件的基本信息如:文件名、文件类型、提交时间等存入到数据库中,以便对图像文件进行识别时需要文件名。这一过程需要页面与数据库建立连接,以PHP和MySQL为例,可通过 mysql库和 mysqli 库函数连接。这种方法是 PHP连接 MySQL 最常用的方法。用户平台基本功能见图2。
图2 用户平台基本功能图
下面是该页面功能实现的主要代码:
<?php
$mylink=mysql_connect("localhost:3306","root","") or die("不能连接到服务器".mysql_error());
mysql_select_db("databasename",$mylink);
$now=date("Y?m?d H:i:s"); //提取上传的时间
$photoname=$_FILES["image"]["name"];
//提取上传图片的名称
if(!empty($photoname)){
//将上传图片时间和图片名,图片类型提交到数据库
$sql="insert into user (time,name) values
(′$now′,′$photoname′)";
}
$result = @mysql_query($sql,$mylink);
?>
2.2 服务器平台的设计与实现
服务器平台即为用户处理数据得到结果的一方。用PHP动态网页设计语言将收到的图像文件以及相关信息分别传递到文件夹和数据库中后,需调用图像处理程序从相应存储空间中提取图像数据进行处理,并把处理后所得的结果数据输入到数据库中,这也是服务器端最重要的工作。根据处理后的数据产生“反馈”页面,即用户看到的处理后的结果信息页面,整个处理过程对用户来说是透明的。
3 服务器端调用图像处理
服务器端调用图像处理程序是系统的关键部分,如果调用不成功或调用错误则不能识别用户提交的图像,也不能将正确的识别结果反馈给用户。调用图像处理程序要看是采用何种软件开发的。
目前主要采用VC++或是Matlab进行图像识别。Visual C++是一个Windows下最主要的、功能强大的集成应用开发环境,它提供了一套MFC类库,它与Windows系统紧密相连,利用它可以完成各种层面的窗口程序开发[3]。Matlab是一个编程简单,功能强大的图像处理软件开发平台。具有图像处理工具箱,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作[3]。用VC进行图像识别,编程功底需比较扎实,程序比较复杂,代码比较庞大。相对而言用Matlab实现比较简单,代码较短,适合于图像处理初学者。
用VC++编写的图像识别程序可生成exe文件,在PHP页面中可直接调用,速度要快一些。若是用Matlab编写的程序,则可通过Matlab的内部编译器MCC将.m文件转换为C或C++编译器所能识别的源代码即.cpp(或.c)文件和它的头文件.h,最后生成exe文件;或是在PHP页面中直接启动Matlab以及.m文件也行。
下面是实现在PHP页面中直接启动Matlab并运行.m文件的代码:
<?php
if (isset($_POST["yes"])){
$dir="e:\\apple?task";
$command="MATLAB ?sd ".$dir." ?r connect";
exec($command);
echo"您的图片已经处理!"; }
?>
4 图像处理
图像处理则是对图像信息进行加工以满足人的视觉心理和应用需求的行为,它是一门新兴的应用学科,其发展速度异常迅速,应用领域极为广泛。图像处理主要分为:图像增强,图像分割,图像识别3个步骤:
(1) 图像增强。图像增强是图像处理中的基本内容之一,在图像处理中占有非常重要的地位。图像增强是图像边缘检测、分割以及特征提取等技术的基础。图像增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或尖锐化。其主要目的是使处理后的图像对某种特定的应用来说,比原始图像更适用。如去除图像中的噪声,改变图像中的亮度和颜色,增强图像中的某些成分与抑制某些成分,对图像进行几何变换等都属于图像增强部分。
(2) 图像分割。图像分割是图像识别和图像理解的基本前提步骤,图像分割质量的好坏直接影响后续图像处理的效果,甚至决定其成败。图像分割的任务是把图像空间按特征分割成互不交叠的、有意义的区域,以便进一步对图像进行分析、识别、压缩编码等。边缘检测是图像分割中的重要方法,因为边缘是所要提取目标和背景的边界线,提取出边缘才能将目标和背景区分开来。边缘检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填充边界间断点,并将这些边缘连接成完整的线。
(3) 图像识别。图像识别是对感知信号(图像、视频和声音等)进行分析,对其中的物体对象或行为进行判别和解释的过程。图3给出了图像识别系统框图。
图3 图像识别系统框图
在图像识别中,特征提取是很重要的一环。所谓图像的特征是指图像中可用作标志的属性,而把图像的某些特征进行数字化处理的过程就称为特征提取。对于不同的识别对象必须考虑不同的特征提取的方法,因此很难有统一的方法和理论,当然这也是研究人员对自己所要研究的图像重点进行的研究工作。判别分类就是采用一定的准则或机制建立分类规则,并用它们对提取特征值后的未知图像模式进行分类识别。
5 结 语
随着计算机软件开发技术的不断进步和计算机网络速率的提升,采用先进的编程软件,开发基于Internet的远程图像识别系统是可行的。并且此类系统可在某些领域,如农、林业病虫害防御等,起到大大减少人力物力资源消耗的效果,有利于工作效率的提高。
参考文献
[1] 赵鹤芹.设计动态网站的最佳方案:Apache+PHP+MySQL[J]. 计算机工程与设计,2007,28(4):933?934.
[2] 维明.基于PHP+MySQL的网站开发[J].物流工程与管理,2009(6):92?96.
[3] 沈颖,宋文强.基于 VC++和 Matlab 的图像处理比较研究[J]. 电脑知识与技术,2009(16):4269?4270.
[4] 陈军.PHP+MySQL经典案例剖析[M].北京:清华大学出版社,2008.
[5] 程伟.PHP网络编程技术与实践[M].北京:清华大学出版社,2008.
[6] 王慧琴.数字图像处理[M].北京:北京邮电大学出版社,2006.
(2) 图像分割。图像分割是图像识别和图像理解的基本前提步骤,图像分割质量的好坏直接影响后续图像处理的效果,甚至决定其成败。图像分割的任务是把图像空间按特征分割成互不交叠的、有意义的区域,以便进一步对图像进行分析、识别、压缩编码等。边缘检测是图像分割中的重要方法,因为边缘是所要提取目标和背景的边界线,提取出边缘才能将目标和背景区分开来。边缘检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填充边界间断点,并将这些边缘连接成完整的线。
(3) 图像识别。图像识别是对感知信号(图像、视频和声音等)进行分析,对其中的物体对象或行为进行判别和解释的过程。图3给出了图像识别系统框图。
图3 图像识别系统框图
在图像识别中,特征提取是很重要的一环。所谓图像的特征是指图像中可用作标志的属性,而把图像的某些特征进行数字化处理的过程就称为特征提取。对于不同的识别对象必须考虑不同的特征提取的方法,因此很难有统一的方法和理论,当然这也是研究人员对自己所要研究的图像重点进行的研究工作。判别分类就是采用一定的准则或机制建立分类规则,并用它们对提取特征值后的未知图像模式进行分类识别。
5 结 语
随着计算机软件开发技术的不断进步和计算机网络速率的提升,采用先进的编程软件,开发基于Internet的远程图像识别系统是可行的。并且此类系统可在某些领域,如农、林业病虫害防御等,起到大大减少人力物力资源消耗的效果,有利于工作效率的提高。
参考文献
[1] 赵鹤芹.设计动态网站的最佳方案:Apache+PHP+MySQL[J]. 计算机工程与设计,2007,28(4):933?934.
[2] 维明.基于PHP+MySQL的网站开发[J].物流工程与管理,2009(6):92?96.
[3] 沈颖,宋文强.基于 VC++和 Matlab 的图像处理比较研究[J]. 电脑知识与技术,2009(16):4269?4270.
[4] 陈军.PHP+MySQL经典案例剖析[M].北京:清华大学出版社,2008.
[5] 程伟.PHP网络编程技术与实践[M].北京:清华大学出版社,2008.
[6] 王慧琴.数字图像处理[M].北京:北京邮电大学出版社,2006.
(2) 图像分割。图像分割是图像识别和图像理解的基本前提步骤,图像分割质量的好坏直接影响后续图像处理的效果,甚至决定其成败。图像分割的任务是把图像空间按特征分割成互不交叠的、有意义的区域,以便进一步对图像进行分析、识别、压缩编码等。边缘检测是图像分割中的重要方法,因为边缘是所要提取目标和背景的边界线,提取出边缘才能将目标和背景区分开来。边缘检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填充边界间断点,并将这些边缘连接成完整的线。
(3) 图像识别。图像识别是对感知信号(图像、视频和声音等)进行分析,对其中的物体对象或行为进行判别和解释的过程。图3给出了图像识别系统框图。
图3 图像识别系统框图
在图像识别中,特征提取是很重要的一环。所谓图像的特征是指图像中可用作标志的属性,而把图像的某些特征进行数字化处理的过程就称为特征提取。对于不同的识别对象必须考虑不同的特征提取的方法,因此很难有统一的方法和理论,当然这也是研究人员对自己所要研究的图像重点进行的研究工作。判别分类就是采用一定的准则或机制建立分类规则,并用它们对提取特征值后的未知图像模式进行分类识别。
5 结 语
随着计算机软件开发技术的不断进步和计算机网络速率的提升,采用先进的编程软件,开发基于Internet的远程图像识别系统是可行的。并且此类系统可在某些领域,如农、林业病虫害防御等,起到大大减少人力物力资源消耗的效果,有利于工作效率的提高。
参考文献
[1] 赵鹤芹.设计动态网站的最佳方案:Apache+PHP+MySQL[J]. 计算机工程与设计,2007,28(4):933?934.
[2] 维明.基于PHP+MySQL的网站开发[J].物流工程与管理,2009(6):92?96.
[3] 沈颖,宋文强.基于 VC++和 Matlab 的图像处理比较研究[J]. 电脑知识与技术,2009(16):4269?4270.
[4] 陈军.PHP+MySQL经典案例剖析[M].北京:清华大学出版社,2008.
[5] 程伟.PHP网络编程技术与实践[M].北京:清华大学出版社,2008.
[6] 王慧琴.数字图像处理[M].北京:北京邮电大学出版社,2006.