国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VB的實(shí)時(shí)圖像處理系統(tǒng)的研究

2012-05-08 09:56:48周洪遠(yuǎn)
關(guān)鍵詞:檢測(cè)儀光斑控件

董 浩,王 帥,張 晶,周洪遠(yuǎn)

(河北省科學(xué)院自動(dòng)化研究所,河北 石家莊 050081)

數(shù)字圖像處理技術(shù)的目的是為了提高圖像的視感質(zhì)量、提取圖像中所包含的某些特征或者對(duì)圖像數(shù)據(jù)進(jìn)行格式變換,目前已在航空航天、生物醫(yī)學(xué)工程、工業(yè)檢測(cè)、機(jī)器人視覺(jué)等領(lǐng)域得到廣泛應(yīng)用,并逐漸深入人們的日常生活。一般來(lái)說(shuō),數(shù)字圖像處理無(wú)論基于何種目的,都需要由計(jì)算機(jī)和專用的圖像處理軟件對(duì)圖像進(jìn)行加工處理。

Visual Basic(VB)是一種由微軟公司開(kāi)發(fā)的編程設(shè)計(jì)語(yǔ)言,它具有簡(jiǎn)單易學(xué)、人機(jī)交互性好等優(yōu)點(diǎn),已經(jīng)在各領(lǐng)域得到廣泛應(yīng)用。圖像處理并不是Visual Basic最具優(yōu)勢(shì)的開(kāi)發(fā)方向,但是借助于其豐富的圖形控件和API函數(shù),Visual Basic可以用簡(jiǎn)潔、高效的語(yǔ)言代碼對(duì)圖像進(jìn)行實(shí)時(shí)處理,并取得令人滿意的效果。

鐵路軌道檢測(cè)儀主要用于檢測(cè)鐵路軌道的高低、水平、軌向等參數(shù),它主要由激光發(fā)射裝置和檢測(cè)接收系統(tǒng)組成。在檢測(cè)接收系統(tǒng)中,使用工業(yè)相機(jī)采集光斑圖像并對(duì)其進(jìn)行處理獲得檢測(cè)參數(shù)。對(duì)此,我們開(kāi)發(fā)了基于VB的實(shí)時(shí)圖像處理軟件,利用該軟件對(duì)光斑圖像進(jìn)行圖像捕捉、獲取像素、減噪處理、二值化等操作,處理后的光斑圖像經(jīng)數(shù)據(jù)處理、計(jì)算,結(jié)合軌道檢測(cè)儀所攜帶的其他設(shè)備,可以為鐵路日常維護(hù)提供詳實(shí)、全面的數(shù)據(jù),有效提高了工務(wù)段日常線路維護(hù)的效率和質(zhì)量。

1 圖像處理過(guò)程及相關(guān)代碼

1.1 圖像捕捉

要處理一幅圖像,首先要通過(guò)合適的手段捕捉圖像,Visual Basic提供了兩種控件用于圖像的顯示,分別是PictureBox控件和Image控件。Image控件沒(méi)有句柄,只能用于顯示圖片,不能作為其它控件的容器,也不支持PictureBox的高級(jí)方法。但是Image控件占用系統(tǒng)資源較少,繪圖速度快,而且其Strech屬性設(shè)置為ture時(shí),圖形能自動(dòng)調(diào)整大小以適應(yīng)Image的尺寸。鑒于此,我們?cè)诓蹲綀D像時(shí),采用PictureBox控件,在軟件人機(jī)顯示界面,采用Image控件。

1.2 像素獲取

每一幅圖像都是由一系列像素點(diǎn)構(gòu)成的點(diǎn)陣。在彩色圖像中,每個(gè)像素點(diǎn)都是由紅、綠、藍(lán)三個(gè)基色調(diào)調(diào)合而成的,如果獲取了每個(gè)像素點(diǎn)三種基色的數(shù)值,就可以對(duì)圖像進(jìn)行深層次的處理。

在Visual Basic中,主要有三種方法可以讀取像素值,前文提到的PictureBox控件可以打開(kāi)多種類型圖片,其本身提供的POINT方法可以讀取每一點(diǎn)的像素值,但是讀取速度較慢,占用內(nèi)存較大;GetPixel方法需要調(diào)用API函數(shù),但其核心和POINT方法相同,仍然不是最佳選擇。目前較主流的方法是GetDIBits方法,使用GetDIBits方法獲取picturebox中各點(diǎn)的RGB值,比POINT方法或GetPixel函數(shù)逐像素獲取像素要快出一個(gè)數(shù)量級(jí)。使用GetDIBits方法獲取像素,首先要注意定義數(shù)據(jù)結(jié)構(gòu),這是GetDIBits方法不可缺少的。然后需要定義變量,用來(lái)存儲(chǔ)圖形的寬度和高度,并定義三維數(shù)組,存放獲取原彩色圖像中各像素的RGB值,這里需要注意的是,GetDIBits方法只能用于從PictureBox控件獲取像素,并不能從Image控件獲取,因?yàn)镮mage控件沒(méi)有句柄,如果想把Image控件的快速性和GetDIBits結(jié)合起來(lái),可以采用自定義控件的方法,為Image控件添加句柄,這樣可以充分利用GetDIBits方法和Image控件的優(yōu)勢(shì),獲取更加快速的像素讀取速度。

以下是GetDIBits方法獲取像素的部分代碼:

Dim iWidth As Integer

Dim iHeight As Integer

Dim bits()As Byte

iWidth=form1.Picture1.ScaleWidth/Screen.TwipsPerPixelX

iHeight=form1.Picture1.ScaleHeight/Screen.TwipsPerPixelY

Dim bi24BitInfo As BitMapInfo

With bi24BitInfo.bmiHeader

.biBitCount=32

.biCompression=0&

.biPlanes=1

.biSize= Len(bi24BitInfo.bmiHeader)

.biWidth=iWidth

.biHeight=form10.Picture1.ScaleHeight/Screen.TwipsPerPixelY

End With

ReDim bits(3,0To iWidth-1,0To iHeight)As Byte

ReDim bitsBW(3,0To iWidth-1,0To iHeight)As Byte

lrtn= GetDIBits(form1.Picture1.hdc,form1.Picture1.Picture.Handle,0&,iHeight,bits(0,0,0),bi24BitInfo,0&)

利用GetDIBits方法可以快速獲取圖片各點(diǎn)像素值,便于后期對(duì)圖片進(jìn)行各種處理。

1.3 減噪處理

由于軌道檢測(cè)儀一般用于野外線路測(cè)量,檢測(cè)接收系統(tǒng)拍攝到的光斑圖像受日照影響較大,當(dāng)光線直射到接收屏?xí)r,甚至出現(xiàn)激光光斑湮沒(méi)在背景噪聲中的現(xiàn)象,另外,長(zhǎng)期野外測(cè)量,很容易使相機(jī)鏡頭帶有灰塵或者微小劃痕,這造成輸入的數(shù)碼圖像上帶有細(xì)微的雜色點(diǎn)或者細(xì)線,甚至出現(xiàn)背景波紋,如圖1、圖2所示。

圖1 激光光斑湮沒(méi)在背景噪聲中圖片

圖2 出現(xiàn)背景波紋的激光光斑圖片

為解決由光線和相機(jī)本身造成的噪聲污染,采集到的圖像必須經(jīng)過(guò)減噪處理,即采用濾波、調(diào)節(jié)對(duì)比度、調(diào)節(jié)亮度等手段,對(duì)圖像進(jìn)行減噪,以去除背景噪聲,提高圖像信噪比。借助于工業(yè)相機(jī)廠商提供的函數(shù),可以實(shí)現(xiàn)對(duì)不同光照狀態(tài)下圖像對(duì)比度、亮度的調(diào)節(jié)。下面主要介紹一下濾波,由于灰塵或者劃痕帶來(lái)的噪聲點(diǎn)寬度較小,一般在1到數(shù)個(gè)像素之間,而且其亮度和周圍正常像素點(diǎn)差異較大,如果我們針對(duì)每一個(gè)像素點(diǎn),取一個(gè)范圍,比如和他周圍最接近的8個(gè)像素點(diǎn)作比較,取出差異最小的n個(gè)像素求平均,代替當(dāng)前噪聲點(diǎn),就可以達(dá)到去除噪聲點(diǎn)的效果,由于代碼過(guò)長(zhǎng),下面僅給出算法,以供參考。

舉例如下:范圍為8,噪聲點(diǎn)為6,取最接近的點(diǎn)為4,4,4,5,5,7,8

4 5 5

7 6 8

3 4 4

均值為(4+4+4+5+5+7+8)/7=5.28(四舍五入后為5)

處理后結(jié)果如下:

4 5 5

7 5 8

3 4 4

可以看出噪聲點(diǎn)已被去除。

經(jīng)過(guò)采用濾波、調(diào)節(jié)對(duì)比度、調(diào)節(jié)亮度三種方法綜合處理,可以將不同光照條件下產(chǎn)生的噪聲有效去除,獲得的圖像具有較高信噪比,以下是調(diào)整前后圖像對(duì)比。

圖3 處理前的激光光斑圖片

圖4 處理后的激光光斑圖片

1.4 二值化操作

經(jīng)過(guò)減噪處理的圖片,已經(jīng)基本去除了環(huán)境噪聲,可以對(duì)圖像進(jìn)行二值化操作,進(jìn)一步處理圖像,二值化屬于VB比較常見(jiàn)的圖像處理手段,目前主要有平均值法、加權(quán)平均值法、最大值法等算法,在本系統(tǒng)中,經(jīng)過(guò)GetDIBits方法提取出的像素點(diǎn)已經(jīng)被存儲(chǔ)在bits()三維數(shù)組中,只需要對(duì)bits()三維數(shù)組進(jìn)行直接操作,就可以得到二值化后的圖片,部分代碼如下:

If bits(0,ix,iy)<90Then

bitsBW(0,ix,iy)=0

bitsBW(1,ix,iy)=0

bitsBW(2,ix,iy)=0

Else

bitsBW(0,ix,iy)=255

bitsBW(1,ix,iy)=255

bitsBW(2,ix,iy)=255

這里設(shè)定的閾值為90,可以根據(jù)具體測(cè)量條件設(shè)定為0-255之間的任意值。

2 結(jié)論

本文介紹了基于VB的實(shí)時(shí)圖像處理系統(tǒng)的主要處理流程和算法,并給出了部分代碼,該系統(tǒng)已經(jīng)成功在鐵路軌道檢測(cè)儀上得到應(yīng)用,作為該儀器的前期數(shù)據(jù)處理核心,將采集到的光斑圖像處理為灰度圖像,便于后期數(shù)據(jù)計(jì)算。針對(duì)1024*768分辨率的圖片,處理速度可以到達(dá)每秒2-3張,基本滿足了鐵路軌道檢測(cè)儀的檢測(cè)需要,結(jié)合其他傳感器提供的參數(shù),可以得出全面的檢測(cè)數(shù)據(jù),為工務(wù)段日常維護(hù)線路提供了堅(jiān)實(shí)的保障。

[1] 倪明田,吳良芝,計(jì)算機(jī)圖形學(xué)[M].北京:北京大學(xué)出版社,1999.

[2] 劉獨(dú)玉,羅彬,基于 VB的圖像處理方法[J].四川輕化工學(xué)院學(xué)報(bào).2000,13(4):21-29.

[3] 田巖.數(shù)字圖像處理與分析[M].武漢 華中科技大學(xué)出版社,2009.

猜你喜歡
檢測(cè)儀光斑控件
我愛(ài)塵世的輕煙和光斑
都市(2023年6期)2023-12-28 07:56:54
光斑
有趣的光斑
有趣的光斑
一種防雷接地裝置的便攜式檢測(cè)儀電路
電子制作(2019年7期)2019-04-25 13:16:56
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
基于555振蕩器的地溝油頻率檢測(cè)儀
電子制作(2017年20期)2017-04-26 06:57:32
巧用故障檢測(cè)儀中的Reset功能
植物健康檢測(cè)儀
就這樣玩會(huì)VBA中常見(jiàn)的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
文登市| 延寿县| 确山县| 临朐县| 安新县| 惠水县| 锡林郭勒盟| 五家渠市| 大荔县| 漳浦县| 县级市| 五河县| 万安县| 武城县| 玉林市| 丁青县| 大埔区| 沙田区| 平利县| 淳化县| 普格县| 丁青县| 新建县| 乡宁县| 新和县| 玛多县| 尼木县| 余江县| 商洛市| 汝城县| 柏乡县| 定日县| 瑞金市| 娄烦县| 建始县| 泾阳县| 抚松县| 双辽市| 新巴尔虎右旗| 巨野县| 南安市|