基于图像处理的植物图像数据库存取技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于图像处理的植物图像数据库存取技术
马晓丹;祁广云;谭峰
【摘要】以植物叶片为例,以Delphi7为前台开发工具,图像信息数据库采用SQL Server 2000作为服务器,实现了网像处理过程中BMP与JPEG格式的转换;同时,
通过ADO流式存取技术,实现了数据库对JPEG图像数据操作的支持.
【期刊名称】《农机化研究》
【年(卷),期】2006(000)003
【总页数】3页(P180-181,186)
【关键词】计算机应用;图像数据库;理论研究;Delphi;SQLServer;ADO;流式存取【作者】马晓丹;祁广云;谭峰
【作者单位】黑龙江八一农垦大学工程学院,黑龙江,大庆,163319;黑龙江八一农垦
大学信息技术学院,黑龙江,大庆,163319;黑龙江八一农垦大学信息技术学院,黑龙江,大庆,163319
【正文语种】中文
【中图分类】TP391
随着信息技术的高速发展,图像数据库存取技术已经在很多方面得到了广泛的应用,如医学影像数据库、人事管理数据库等;但关于植物图像数据库的管理还很少。
植物图像数据库如果可以和专家系统相结合,进行远程植物病害的诊治,这将会加快垦区乃至全国的农业现代化步伐。
本系统以植物叶片为例,旨在图像处理的基础上对植物叶片的中间过程图像进行实时地存取,为将来的植物病害诊治打下良好的基
础。
在对植物叶片进行图像处理和分析时,及时地存取其中间过程的图像是非常重要的。
这不仅便于图像的管理,而且也方便随时了解叶片的各个生长阶段和病害的概貌。
图像处理主要针对的是BMP格式的图像,其它以点阵形式描述图形图像,并在有足够的文件量的前提下,能真实细腻地反映图片的层次、色彩;但其缺点是文件体积较大,不适合于数据库存储,所以必须把BMP转换成适合数据库存储的图像格式。
JPEG是24位的图像文件格式,也是一种高效率的压缩格式,通过损失极少
的分辨率,可以将图像所需存储量减至原大小的10%,适合于数据库操作;反之,当从数据库中读取JPEG图像时,需要将其转换为BMP格式才能适合于图像的处
理与分析。
本系统以Delphi7为前台开发工具,采用SQL Server2000作为服
务器,实现了两者之间的转换,方便快速,避免了以往繁琐地使用扫描仪来改变图像格式的方法;同时,也实现了基于图像处理的图像数据库存取技术。
为保证系统的先进性和扩展性,选择Delphi 7作为前台开发工具。
本系统以图像
处理为基础,实现了BMP与JPEG的格式转换;同时,图像信息数据库采用SQL Server 2000,通过ADO数据访问实现透明的数据库操作,并通过定义Stream
对象实现了图像的存取功能。
工作原理简图,如图1所示。
(1) 分别定义一个TBitMap对象和一个TJPEG对象
Bmp:=TbitMap.Create;
JPEG:=TJPEG.Create;
(2) 通过BMP与JPEG的创建,实现两者转换。
·BMP转换到JPEG时,主要应用如下代码:
try
JPEG:=Tjpegimage.Create;//动态创建Tjpe-
gimage对象
JPEG.Assign(image1.Picture.Bitmap);//Im-
age中装载的是BMP格式的图片
JPEG. SaveToFile (ChangeFileExt (SavePic-
tureDialog1.Filename,'.jpeg'));//保存
jpeg
finally
JPEG.Free;//释放JPEG
end;
·JPEG转换到BMP时,主要应用如下代码:
try
bmp:=Tbitmap.Create;//动态创建临时位bmp
bmp.Assign(image1.Picture.Bitmap);//Ima- ge中装载的是JPEG格式的图片bmp.SaveToFile(ChangeFileExt(SavePictureDialog1.Filename,’.bmp'));//ChangeFileExt用于改变文件的扩展名
finally
bmp.Free;//释放BMP
end;
2.2.1 数据库的建立
建立名为JPEGDBase的数据库,JPEGTable的数据表各字段的设置,如表1所示。
其中,name字段为要操作图片的名称;graph字段为图片的存取区域,数据类型必须为image,否则无法进行图片的存取操作。
2.2.2 ADO各控件属性设置
ADO各控件属性设置,如表2所示。
其中,ConnectionString:=Provider=SQLOL- EDB.1;Integrated
Security=SSPI;Persist Secu- rity Info=false Initial catalog= JPEGDBase;DATASOUSE=服务器
2.2.3 图像的流式存储
首先将BMP用上述方法转换成JPEG格式。
(1) 分别定义一个Tstream对象和Tmemory Stream对象。
Strm1:Tstream;
Strm2:TmemoryStream;
(2) 通过创建Strm1 和Strm2 对象实现图像数据存入对应数据库字段。
Try
Form1.ADOTable1.edit;
Strm2:=TmemoryStream.creat;
Strm2.loadformfile(openpicturedialog1.fil- ename);
Strm1:=form1.ADOTable1.CreateBlobStream(for-
m1.ADOTable1.fieldbyname(‘Graph’),bmwrite);//创建TStream 类型对象strm1,将其指向数据库中的—“内容”—字段这是创建TStream 类型对象的一种特殊用法。
Strm1.copyFrom(Str2,Str2.size);//将图像数据从strm2 拷贝到strm1中Strm1.free;
Strm2.free;
Post;
Showmessage(‘图像存储成功’);
Except
ShowMessage(‘ 保存数据出错’);
End;
注意:一定要在提交数据之前释放strm1 和strm2 对象。
2.2.4 JPEG图像的读取显示
(1) 定义类:实现Image 组件对JPEG 图像的支持。
JPEG:TJPEG;
MS: Tstream;
注:由于Delphi7中TImage 组件不能直接支持JPEG格式的图像显示,必须在窗体生成时创建TJpegImage 类,即在Form的OnCreat 事件中加入JpegImage:=TJpegImage1.create;
(2) 创建类:在窗体上添加Image组件,实现JPEG图像的显示。
Image1.picture.Graphic:=JpegImage;
MS:=form1.ADOQuery1.CreateBlobStream(form1.ADOQuery1.fieldbyname (‘Graph’),bmread);
Image1.picture.graphic.LoadFromStream(MS);
MS.Free。
本系统运行完好,实现了图像的数据库存取操作。
在对植物图片进行图像处理时,体现了数据库与图像处理编程语言之间的互动性,并为植物图片的描述与理解提供了平台。
【相关文献】
[1] 赛奎春.陈紫红,宋坤.Delphi数据库开发关键技术与实例应用[M].北京:人民邮电出版社,2004.
[2] 刘骏.Delphi数字图像处理及高级应用[M].北京:科学出版社,2003.
[3] 何斌,马天予,王运坚,等.Visual C++数字图像处理(第二版)[M].北京:人民邮电出版社,2002.。