• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Sobel修正算子在視頻監(jiān)控圖像模糊程度分析中的實現(xiàn)

    2013-10-27 07:54:14王昂千鄭永輝浙江省諸暨市公安局
    警察技術 2013年3期

    王昂千 鄭永輝 浙江省諸暨市公安局

    一、引言

    圖像模糊對視頻監(jiān)控尤其數(shù)字高清監(jiān)控而言,是一個發(fā)生頻率較高的故障點。造成圖像模糊的原因多種多樣,有設備自身的原因,有設備調校的原因,也有環(huán)境因素,只要有一個環(huán)節(jié)處理不當,圖像模糊就在所難免。而對視頻監(jiān)控系統(tǒng)的運維來講,如果監(jiān)控系統(tǒng)龐大,監(jiān)控點多,在面對大量監(jiān)控點的時候如何快速檢索出監(jiān)控畫面發(fā)生模糊的情形,并對模糊程度進行定性分析,這成為提高視頻監(jiān)控系統(tǒng)運維效率的重要課題之一。

    要對監(jiān)控圖像的模糊程度進行分析,準確有效的圖像邊緣檢測是關鍵。目前在實踐中比較成熟的經(jīng)典算子有Sobel算子、Kirsch算子、Laplace算子、LoG算子、Prewitt算子、Roberts算子等,這些算子對于特定的應用場合各有千秋。但是,公安應用的視頻監(jiān)控系統(tǒng)所拍攝的場景紛繁復雜,套用某一個算子難以準確捕捉所有監(jiān)控圖像邊緣點,例如當監(jiān)控畫面為一段路面的時候,往往造成獲取的圖像邊緣點過少從而影響圖像模糊程度的評估。在公安監(jiān)控運維實踐的基礎上,本文將就如何加強圖像邊緣檢測的有效性并試圖解決上述問題作出探討。

    二、算子的選擇

    Sobel算子、Kirsch算子、Laplace算子、Prewitt算子、Roberts算子等,這類算子是基于微分的邊緣檢測,它們的共同特點是在空間域上對被考察點的鄰域進行一定的加權運算,將計算的結果作為邊緣強度;其中Roberts算子、Sobel算子是將水平方向和垂直方向近似微分的絕對值的和作為最后的結果;而Prewitt算子、Kirsch算子是用模板中不等權的8個算子分別與原標準圖像進行卷積,然后取這8個值的最大值作為最后的輸出值;Laplace算子是基于二階微分的邊緣檢測算子,這種算子實現(xiàn)結果并不好,一般很少直接用于圖像邊緣檢測。這些算子具有算法簡單、運算速度快等特點,相對來講Roberts算子、Sobel算子比較簡單,而Prewitt算子、Kirsch算子和Laplace算子實現(xiàn)時相對復雜。但這些算子在增強邊緣的同時也放大了噪聲,從而影響了邊緣點的定位準確度與定位精度。

    LoG算子由Marr和Hildreth提出,將高斯濾波和拉普拉斯邊緣檢測結合在一起,形成LoG算法,也稱為拉普拉斯高斯算法。這種方法的特點是圖像先與高斯濾波器進行卷積,這一步既平滑了圖像又降低了噪聲,孤立的噪聲點和較小的結構組織將被濾除,然后利用無方向性的拉普拉斯算子實現(xiàn)邊緣檢測。

    綜上所述,本文采用以Sobel算子為基礎、LoG算子對其作修正的邊緣檢測新算法,在保證運算速度的前提下提高邊緣點的定位準確度與定位精度,從而提高復雜條件下拍攝的視頻監(jiān)控圖像邊緣檢測的適應能力。

    三、Sobel算子的修正

    Sobel算子由兩個卷積核g1(x,y)與g2(x,y)對原圖像f(x,y)進行卷積運算而得到的,其數(shù)學表達式為:

    在技術上,它是離散性差分算子,用來運算圖像亮度函數(shù)的梯度之近似值。在圖像的任何一點使用此算子,將會產(chǎn)生對應的梯度矢量。該算子包含兩組3×3的矩陣,分別為橫向及縱向,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。如果以A代表原始圖像,Gx及 Gy分別代表經(jīng)橫向及縱向邊緣檢測的圖像,其公式如下:

    圖像的每一個像素的橫向及縱向梯度近似值可用以下的公式結合,來計算梯度的大?。?/p>

    然后可用以下公式計算梯度方向:

    如果以上的角度Θ等于零,即代表圖像此處擁有縱向邊緣,左方較右方暗。

    由于Sobel算子是濾波算子的形式,用于提取邊緣,可以利用快速卷積函數(shù),簡單有效,因此應用廣泛。美中不足的是,Sobel算子并沒有將圖像的主體與背景嚴格地區(qū)分開來,換言之就是Sobel算子沒有基于圖像灰度進行處理,由于Sobel算子沒有嚴格地模擬人的視覺生理特征,所以提取的圖像輪廓有時并不能令人滿意。在觀測一幅圖像的時候,我們往往首先注意的是圖像與背景不同的部分,正是這個部分將主體突出顯示?;谠摾碚?,本文給出了下面的LoG算子邊緣零交叉算法,該算法已經(jīng)在數(shù)學上證明了當像素點滿足正態(tài)分布時所求解是最優(yōu)的,并以該算法對Sobel算子的不足之處進行修正。

    在Marr的視覺理論中,視覺的第一階段很大程度上是由零交叉檢測器完成的,然而利用圖像強度二階導數(shù)的零交叉點求邊緣的算法對噪聲十分敏感,所以希望在邊緣增強前濾除噪聲,而LoG算法比較好地解決了這一問題。LoG算法中圖像先與高斯濾波器G(x,y)進行卷積,平滑圖像的同時降低噪聲,然后利用無方向性的拉普拉斯算子實現(xiàn)邊緣檢測。常用的LoG算子是5×5的矩陣:

    二維高斯函數(shù)為:

    則連續(xù)函數(shù)f(x,y)的LoG邊緣檢測算子定義為:

    其中r=x+y,σ是標準差。取σ=1.0時的LoG算法圖形如圖1所示,到中心的距離與位置加權系數(shù)的關系曲線像墨西哥草帽的剖面,所以LoG算子也叫墨西哥草帽濾波器。神經(jīng)心理學研究證實,它是對視網(wǎng)膜神經(jīng)細胞感受域組織的一個良好近似,可看作由一個興奮中心區(qū)和一個抑制周邊區(qū)組成。

    在ASP.NET(C#語言)開發(fā)環(huán)境下,筆者將Sobel算子和LoG算子進行“近似復核”運算,由此形成了經(jīng)LoG算子修正的Sobel修正算子,針對公安視頻監(jiān)控應用的實際情形,最大限度地尋求最優(yōu)圖像邊緣檢測效果。

    所謂“近似復核”運算,即分別用Sobel算子、LoG算子得出兩份檢測結果,在被Sobel算子確定為邊緣點的基礎上,再與LoG算子得出的邊緣點相比較,把近似度相近的像素點進一步確定為邊緣點,其在程序中的具體實現(xiàn)方法如下:

    public void detect(Bitmap bm) // bm為要進行邊緣檢測的位圖

    {

    int iw = bm.Width;

    int ih = bm.Height;

    Color c = new Color();

    int[,] gray = new int[iw, ih];//灰度圖像矩陣

    int[,] flag_bmp = new int[iw, ih];//邊緣圖像矩陣

    int grayNum = 0;

    for (int j = 0; j < ih; j++)//給灰度圖像矩陣gray賦值

    {

    for (int i = 0; i < iw; i++)

    {

    c = bm.GetPixel(i, j);

    gray[i, j] = (int)(0.299 * c.R + 0.587 *c.G + 0.114 * c.B);

    grayNum = grayNum + gray[i, j];

    flag_bmp[i, j] = 0;

    }

    }

    int[,] log = {{-2,-4,-4,-4,-2}, //LoG算子

    {-4, 0, 8, 0,-4},

    {-4, 8,24, 8,-4},

    {-4, 0, 8, 0,-4},

    {-2,-4,-4,-4,-2}};

    //LoGedge為LoG算子求取圖像邊緣的傳統(tǒng)方法

    int[,] ledge = LoGedge(gray, log, iw, ih);

    int[,] sobelx = {{-1, 0, 1}, //Sobel算子橫向檢測

    {-2, 0, 2},

    {-1, 0,1}};

    int[,] sobely = {{1, 2, 1}, //Sobel算子縱向檢測

    {0, 0, 0},

    {-1,-2,-1}};

    //Sobeledge為Sobel算子求取圖像邊緣的傳統(tǒng)方法

    int[,] sedgex = Sobeledge(gray, sobelx, iw, ih);

    int[,] sedgey = Sobeledge(gray, sobely, iw, ih);

    for (int j = 2; j < ih - 2; j++)

    {

    for (int i = 2; i < iw - 2; i++)

    {

    //近似復核運算過程

    int sx = sedgex[i, j];

    int sy = sedgey[i, j];

    int t1 = ledge[i - 1, j] * ledge[i + 1, j];

    int t2 = ledge[i, j - 1] * ledge[i, j + 1];

    if (sx > 80 || sy > 80)

    flag_bmp[i, j] = 1;

    if ((t1 < 0 && sx > 80) || (t1 < 0 && sy >80) || (t2 < 0 && sx > 80) || (t2 < 0 && sy > 80))

    flag_bmp[i, j] = 1;

    if ((t1 < 0 || t2 < 0) && (sx > 80 || sy > 80))

    flag_bmp[i, j] = 1;

    }

    }

    // 將近似復核運算得出的圖像邊緣返回給其它運算函數(shù)

    GetVariance(bm, gray, flag_bmp);

    }

    四、實驗結果

    為了驗證本文算法的有效性,筆者選取1幅實際采集的監(jiān)控畫面(見圖2,截取原圖的七分之五以剔除監(jiān)控通道名稱、時間等元素,若不將之剔除會對圖像模糊程度檢測產(chǎn)生干擾)進行了實驗。

    從以上實驗結果(見圖3~圖5)可以看出,相對于LoG算子及Sobel算子,經(jīng)過修正之后的Sobel修正算子獲得的邊緣檢測結果較為理想,這為圖像模糊程度的定性分析提供了良好的技術基礎。本文的算法速度比Sobel算子慢一點,不過其計算速度在視頻監(jiān)控系統(tǒng)故障自動檢測等實踐過程中是可以接受的。

    五、圖像模糊定性分析

    圖像的邊緣點對應著圖像強度突變或不連續(xù)的地方,圖像的梯度值即圖像灰度變化的速率將在這些過渡邊界上存在最大值,一幅清晰的圖像其邊緣點與鄰域的梯度值較大,反之則較小。根據(jù)這一理論,本文通過獲取邊緣點與8個鄰域的梯度值平均方差T來判斷該圖像是否清晰。其計算公式如下:

    式中,I(x,y)為邊緣點灰度值,i(m,n)為邊緣點8個鄰域的平均灰度值。通過實踐總結,當T的經(jīng)驗值在150以上時一般可以認為該圖像是清晰的,然后根據(jù)T值的大小來定性衡量圖像的模糊程度,T值越小則圖像越模糊。

    六、結束語

    目前,Sobel修正算子已經(jīng)在筆者開發(fā)的“視頻監(jiān)控設備故障檢測報警系統(tǒng)”(簡稱TDSCS)軟件平臺中得以實現(xiàn),為快速有效地檢索畫面模糊的監(jiān)控點、定性分析圖像的模糊程度提供了一種有效途徑。

    智能化應用是理想的,但技術現(xiàn)狀卻未必盡如人意。判斷一幅圖像是否模糊,人工分析、智能分析都可以實現(xiàn),但是智能分析無法判斷出屬于哪一種類型的模糊,而人工可以根據(jù)經(jīng)驗判斷出模糊是由于“鏡頭離焦”或者“下雨”等原因引起的,因此智能化識別圖像模糊的工作還有待進一步的改進與發(fā)展。

    通城县| 珲春市| 沅陵县| 阿城市| 莱西市| 斗六市| 东乡| 东阿县| 正蓝旗| 湖北省| 无锡市| 汝城县| 长葛市| 通许县| 靖州| 镇康县| 如东县| 阳新县| 元氏县| 阜新市| 肇州县| 池州市| 红桥区| 河间市| 土默特左旗| 柳江县| 公主岭市| 永德县| 阿拉善盟| 吴川市| 古交市| 道真| 会泽县| 察雅县| 乐业县| 井陉县| 横山县| 定陶县| 类乌齐县| 台山市| 梁河县|