劉書(shū)杰,周曉峰
(長(zhǎng)春中醫(yī)藥大學(xué) 附屬醫(yī)院,長(zhǎng)春 130117)
基于Delphi語(yǔ)言的數(shù)字圖像處理實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)
劉書(shū)杰,周曉峰
(長(zhǎng)春中醫(yī)藥大學(xué) 附屬醫(yī)院,長(zhǎng)春 130117)
介紹了一種利用Object Pascal面向?qū)ο笳Z(yǔ)言Delphi 7.0軟件開(kāi)發(fā)平臺(tái),并結(jié)合BussinessSkinForm界面控件,實(shí)現(xiàn)基本的圖像處理,并可以對(duì)學(xué)生信息的添加、修改、保存、刪除、按條件對(duì)學(xué)生信息進(jìn)行查詢管理的實(shí)驗(yàn)系統(tǒng)。
數(shù)字圖像處理;實(shí)驗(yàn)系統(tǒng);Delphi 7.0
數(shù)字圖像處理作為一門(mén)學(xué)科大約形成于20世紀(jì)60年代初期。早期圖像處理的目的是改善圖像的質(zhì)量,它以人為對(duì)象,以改善人的視覺(jué)效果為目的。隨著計(jì)算機(jī)技術(shù)的發(fā)展,圖像處理技術(shù)已經(jīng)運(yùn)用到了工業(yè)、軍事、醫(yī)學(xué)等很多方面。而圖像處理也變成了一個(gè)復(fù)雜而繁瑣的過(guò)程,常常一項(xiàng)簡(jiǎn)單的圖像處理過(guò)程需要多個(gè)圖像處理算法共同完成。如果臨時(shí)編寫(xiě)算法的話不僅算法的正確性難以保證,而且對(duì)于不熟悉編程的人來(lái)說(shuō)是件困難的事。本文給出一種基于Dlephi語(yǔ)言的數(shù)字圖像處理系統(tǒng)。給學(xué)生提供一個(gè)不受時(shí)間地點(diǎn)、實(shí)驗(yàn)設(shè)備限制的實(shí)驗(yàn)環(huán)境,還能提供多種算法,對(duì)數(shù)字圖像進(jìn)行效果的美化加工。[11]
數(shù)字圖像管理實(shí)驗(yàn)系統(tǒng)是圖像處理實(shí)驗(yàn)系統(tǒng)與管理實(shí)驗(yàn)系統(tǒng)相結(jié)合的數(shù)據(jù)庫(kù)應(yīng)用程序。根據(jù)數(shù)字圖像處理實(shí)驗(yàn)系統(tǒng)的具體實(shí)現(xiàn)情況,實(shí)驗(yàn)系統(tǒng)的主要功能應(yīng)包括:[5][7]
(1)登錄功能:分教師登錄與學(xué)生登錄;
(2)管理功能:教師登錄后能管理學(xué)生信息,可評(píng)分;
(3)程序基本功能:打開(kāi)、關(guān)閉、保存、另存為、退出;
(4)處理數(shù)字圖像功能:
圖像編輯:圖像的單步撤銷和重做;整幅圖的復(fù)制,剪切,粘貼,清除;
圖像調(diào)整:位圖變換(90度旋轉(zhuǎn),水平翻轉(zhuǎn),垂直翻轉(zhuǎn)),取反色,取黑白兩色,灰度圖變換??梢杂没瑒?dòng)工具條改變參數(shù)的有對(duì)比度,亮度,飽和度,RGB;
圖像濾鏡:曝光效果,浮雕效果??梢杂没瑒?dòng)工具條改變參數(shù)的有銳化,模糊,添加雜色,噴濺效果,馬賽克效果,霓虹效果;
(5)顯示圖片路徑及實(shí)際寬和高:在軟件最底端的工具欄會(huì)自動(dòng)顯示;
(6)存儲(chǔ)實(shí)驗(yàn)流程功能:學(xué)生能存儲(chǔ)實(shí)驗(yàn)步驟供老師評(píng)分時(shí)參考。
根據(jù)上述要求,確定實(shí)驗(yàn)系統(tǒng)的整體結(jié)構(gòu)圖,如圖1所示,各模塊包含不同的功能子塊。
數(shù)字圖像實(shí)驗(yàn)系統(tǒng)是調(diào)用所有窗體的單元,并且記錄每個(gè)Form窗體與其對(duì)應(yīng)的Unit單元名稱。由于篇幅限制,實(shí)驗(yàn)系統(tǒng)的各個(gè)模塊不能在這里一一闡述,重點(diǎn)闡述主窗體程序模塊:[1][10]
(1)打開(kāi)圖片
數(shù)字圖像實(shí)驗(yàn)系統(tǒng)中利用“procedure OpenPicture”用于打開(kāi)文件的時(shí)候把非bmp的圖片像素化為位圖導(dǎo)入到image1的畫(huà)布上。
圖1 實(shí)驗(yàn)系統(tǒng)整體模塊圖
下面是使打開(kāi)的文件轉(zhuǎn)換成bmp的格式的部分代碼:
(2)圖像撤銷及重做
建立一個(gè)過(guò)程procedure undouse;用于在每次執(zhí)行新操作的時(shí)候都把當(dāng)前圖像保存到image2~image5中去,并調(diào)整image2~image5的圖像。調(diào)整原理(將前者的bitmap位圖,assign分配給后者):image1→image4,image1→image2,image5→image3,image5→image4,image1→image5。然后在每個(gè)新操作執(zhí)行完的時(shí)候都要執(zhí)行一次這個(gè)過(guò)程,以保證及時(shí)能更新要撤銷的圖像。[8]
撤銷:繼續(xù)調(diào)整 image2 ~image5 的關(guān)系,image1→image4,image3→image1,image1→image5。
重做:調(diào)整image2→image1
(3)位圖變換:90度旋轉(zhuǎn),圖像垂直翻轉(zhuǎn),水平翻轉(zhuǎn)
90度旋轉(zhuǎn):調(diào)用過(guò)程procedure Rotatepicture(Bitmap:TBitmap);該過(guò)程主要以創(chuàng)建內(nèi)存流和創(chuàng)建指針,并將其進(jìn)行指針轉(zhuǎn)移,數(shù)據(jù)轉(zhuǎn)移后,逐列逐點(diǎn)存入數(shù)組中來(lái)實(shí)現(xiàn)圖像的90度翻轉(zhuǎn)。
垂直翻轉(zhuǎn):通過(guò)scanline掃描,建立兩個(gè)Tbitmap進(jìn)行對(duì)稱列之間的字節(jié)交換,從而完成垂直翻轉(zhuǎn)。
水平翻轉(zhuǎn):原理和垂直翻轉(zhuǎn)一樣,不過(guò)它是通過(guò)對(duì)稱行之間的字節(jié)交換來(lái)實(shí)現(xiàn)的。
(4)圖像的反色、兩色及灰度處理
反色:通過(guò)Scanline掃描,對(duì)位圖的每個(gè)點(diǎn)進(jìn)行邏輯非操作。
兩色:先把像素點(diǎn)上的三個(gè)字節(jié)乘以分別乘以一個(gè)小數(shù)(它們分別是0.3,0.59,0.11,是根據(jù)YUV顏色空間,Y分量的物理含義就是亮度,它包含了灰度圖的所有信息,只求Y的值就可以得到灰度圖,Y=0.3*R+0.59*G+0.11*B),然后處理得到該點(diǎn)在0~255之間的一個(gè)值。分析該值,如果大于128就將它的值改變?yōu)?55(黑色),如果小于128就改為0(白色)。
灰度:對(duì)圖像每個(gè)點(diǎn)的RGB取平均值,并將平均值賦予取值點(diǎn)。這是因?yàn)?,在RGB編碼中,如果一個(gè)像素的 R、G、B 分值相等,那么這就是一個(gè)灰色的像素。例如RGB(i,i,i)(i∈[0,255])可以表示不同灰度等級(jí)的灰色。當(dāng)i=255時(shí),該像素為白色,當(dāng)i=0時(shí),該像素為白色。數(shù)字圖像如圖2所示。
圖2 數(shù)字圖像的處理
(5)圖像的縮放
通過(guò)設(shè)置image1的屬性image1.AutoSize:false;image1.Stretch:=true;然后就可以通過(guò)同時(shí)調(diào)整image1的寬、高來(lái)實(shí)現(xiàn)圖像的縮放。
(6)界面切換
在form窗體中拖放多個(gè)TbsStoredSkin控件,分別載入指定目錄下編輯好的界面文件skin.ini,然后改變bsSkinData1中的storeskin屬性,使其指向特定的TbsStoredSkin,即可完成切換。
在數(shù)字圖像處理實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)中,采用Object Pascal面向?qū)ο笳Z(yǔ)言Delphi 7.0軟件開(kāi)發(fā)平臺(tái),并結(jié)合BussinessSkinForm界面控件,具有運(yùn)行速度快,操作簡(jiǎn)便容易上手,小巧精致,界面美觀等特點(diǎn)。不僅可以進(jìn)行基本的圖像處理,對(duì)不滿意的數(shù)碼照片進(jìn)行顏色調(diào)節(jié),或?qū)Ρ榷日{(diào)節(jié)等,還可以對(duì)學(xué)生進(jìn)行管理,實(shí)現(xiàn)了對(duì)學(xué)生信息的添加、修改、保存、刪除、按條件對(duì)學(xué)生信息的查詢以及記錄學(xué)生對(duì)系統(tǒng)操作的記錄。
[1] 王海濤,張樹(shù)仁.在DELPHI的環(huán)境下利用MSCOMM控件開(kāi)發(fā)RS232串口通信軟件[J].長(zhǎng)春大學(xué)學(xué)報(bào),2012(2):160-162.
[2] 劉榴娣,劉明奇,黨長(zhǎng)民.實(shí)用數(shù)字圖像處理[M].北京:北京理工大學(xué)出版,2009.
[3] 丁兆海.Delphi基礎(chǔ)教程[M].北京:電子工業(yè)出版社,2007.
[4] 王小華.Delphi 6程序設(shè)計(jì)與控件參考[M].北京:電子工業(yè)出版社,2008.
[5] 董迎紅,于秀霞.基于GIS醫(yī)院地理信息查詢管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].長(zhǎng)春大學(xué)學(xué)報(bào),2011(12):32-35.
[6] 段來(lái)盛,鄭城榮.曹恒,Delphi實(shí)戰(zhàn)演練[M].北京:人民郵政出版社,2009.
[7] 張化勛,曹旭.基于VB環(huán)境下的聾啞大學(xué)生無(wú)障礙信息交流教學(xué)輔助系統(tǒng)的設(shè)計(jì)[J].長(zhǎng)春大學(xué)學(xué)報(bào),2011(8):1-5.
[8] 張亞飛.精通Delphi結(jié)構(gòu)化設(shè)計(jì)和開(kāi)發(fā)[M].北京:科學(xué)出版社,2006.
[9] 劉海濤.Delphi程序設(shè)計(jì)基礎(chǔ)[M].北京:清華大學(xué)出版社,2006.
[10] 東方人華,呂偉臣.Delphi7入門(mén)與提高[M].北京:清華大學(xué)出版社,2007.
[11] 劉駿.Delphi數(shù)字圖像處理及高級(jí)應(yīng)用[M]北京:科學(xué)出版社,2007.
Design of the Experimental System of Digital Image Processing Based on Delphi
LIU Shu-jie,ZHOU Xiao-feng
(Attached Hospital to Changchun University of Chinese Medicine,Changchun 130117,China)
This paper introduces a software development platform by using Object Pascal targeted object language Delphi 7.0.With BussinessSkinForm interface control,the experimental system can simply process digital images and can append,modify,save,delete,locate students’information and inquire and manage them on conditions.
digital image processing;experimental system;Delphi 7.0
TP317.4
A
1009-3907(2012)08-0945-04
2012-06-06
劉書(shū)杰(1961-),女,吉林長(zhǎng)春人,工程師,主要從事計(jì)算機(jī)應(yīng)用方面研究。
責(zé)任編輯:吳旭云
長(zhǎng)春大學(xué)學(xué)報(bào)2012年8期