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

    基于VC的太陽光斑圖像識別跟蹤系統(tǒng)設(shè)計與實現(xiàn)

    2018-03-10 07:43:42孫雷孫慶蘇
    軟件導(dǎo)刊 2018年2期
    關(guān)鍵詞:跟蹤識別

    孫雷+孫慶蘇

    摘 要:塔式太陽能聚光發(fā)電系統(tǒng),在實際運用中由于天氣、溫度和鏡子的執(zhí)行傳動結(jié)構(gòu)等因素產(chǎn)生誤差,太陽光不一定能夠按照理想的情況反射到聚光位置。為使定日鏡能夠準(zhǔn)確跟蹤太陽和反射太陽熱能,提出一種基于VC的太陽光斑圖像識別跟蹤系統(tǒng),使用視頻捕捉和圖像處理技術(shù),獲取太陽光斑的誤差偏移距離,并將這個修正數(shù)據(jù)通過串口發(fā)送給控制系統(tǒng)。根據(jù)定日鏡自動跟蹤太陽軌跡、反射光斑并進(jìn)行圖像修正的試驗,結(jié)果顯示能夠計算確定圖像中光斑的位置,獲取實際偏差,并且在監(jiān)視器上清晰看見每面定日鏡的輪廓及其反射的光斑。系統(tǒng)采用圖像匹配算法,具有精度高等特點,能夠有效實現(xiàn)太陽光斑的識別與跟蹤。

    關(guān)鍵詞:太陽光斑;識別;跟蹤;定日鏡場; VC

    DOIDOI:10.11907/rjdk.172320

    中圖分類號:TP317.4

    文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2018)002-0205-03

    0 引言

    太陽能是最豐富、持久的能源,但因能量密度低,使其被提取需要聚光,目前主要的太陽能聚光發(fā)電系統(tǒng)有塔式、槽式,其中,塔式是太陽能熱發(fā)電系統(tǒng)中具有吸引力的一種方式[1]。

    由于太陽東升西落,定日鏡場中的每一面鏡子也必須由東向西,同時由下而上、再由上而下運動,才能保證每一面鏡子對陽光的反射聚集到塔上的吸熱器上。根據(jù)每一面鏡子與吸熱器的相對位置、時間、地點等,可以計算出每一面鏡子在任何時刻的方位角和仰角[2],但是,由于大氣折射、機械誤差、熱脹冷縮、材料老化等原因,將引起反射的偏差,影響發(fā)電效率。

    圖像識別系統(tǒng)可作為控制系統(tǒng)的負(fù)反饋,及時調(diào)整每一面鏡子的方位角和仰角,使每一面鏡子對陽光的反射永遠(yuǎn)對準(zhǔn)吸熱器,提高發(fā)電效率。具體方法是安裝高清晰攝像頭,實時采集定日鏡反射的圖片,進(jìn)行圖像識別,找出圖像中的太陽光斑(即太陽的位置)與標(biāo)準(zhǔn)圖片進(jìn)行比對,如果所拍攝光斑X、Y向偏差與標(biāo)準(zhǔn)太陽光斑位置偏離,發(fā)出修正信息對鏡子設(shè)定值進(jìn)行修正[3],同時記錄或報警。

    1 系統(tǒng)設(shè)計

    1.1 功能設(shè)計

    在太陽能熱發(fā)電電站中,定日鏡的作用是收集太陽輻射能并將其匯聚到吸熱器處,它由按一定方式排列的可繞雙軸跟蹤的定日鏡組成,每個定日鏡通過繞軸轉(zhuǎn)動跟蹤太陽,并將輻射到其表面的太陽能反射到塔頂吸熱器[4]。

    太陽光斑圖像識別跟蹤系統(tǒng)的功能是采用特殊的高清攝像圖像識別方法,用于定日鏡受外力位移出現(xiàn)的偏差修正,使得定日鏡能夠準(zhǔn)確跟蹤太陽和反射太陽熱能。

    1.2 可行性分析

    由于太陽不停在轉(zhuǎn)動,為了使光線經(jīng)過定日鏡反射后能夠一直照射到這個面上,需要根據(jù)太陽在不同時間的位置來調(diào)整定日鏡的水平和垂直位置。但是,根據(jù)太陽的運行規(guī)律計算的太陽軌跡會因為天氣、溫度和鏡子的執(zhí)行傳動結(jié)構(gòu)等產(chǎn)生誤差,太陽光不一定能夠按照理想的情況反射到聚光位置,而且當(dāng)其中的一面或幾面鏡子發(fā)生偏離,沒有反射到聚光位置的時候也無法知道。由此設(shè)計,利用圖像識別系統(tǒng),將這個偏差值反饋給控制系統(tǒng),控制系統(tǒng)可以利用偏差值進(jìn)行修正。

    太陽能控制系統(tǒng)主要由計算機、攝像機(CCD)、聚光接收器、定日鏡和定日鏡控制系統(tǒng)組成,核心是圖像分析監(jiān)測系統(tǒng),系統(tǒng)組成如圖1所示。利用攝像機拍攝整個定日鏡場的畫面,由于攝像頭和鏡場中的各面鏡子都相對固定,在抓取的圖片中可以區(qū)分出每一面鏡子位置太陽光線是平行的光線,鏡子上太陽光斑的偏移即是接收點的偏移。因此,在軟件中通過對光斑輪廓的判斷獲取光斑的中心值[5],然后算出與中心點像素的偏差值,并將這個像素的偏差值轉(zhuǎn)化為實際的偏差值,發(fā)送給控制系統(tǒng)。

    1.3 系統(tǒng)流程

    太陽能圖像分析監(jiān)測系統(tǒng)采用Visual C++設(shè)計,使用視頻捕捉和圖像處理技術(shù),獲取太陽光斑的誤差偏移距離,并將這個修正數(shù)據(jù)通過串口發(fā)送給控制系統(tǒng)。

    軟件設(shè)計思想是獲取攝像機采集并通過圖像卡傳輸過來的視頻,對視頻圖像進(jìn)行圖片抓取,通過軟件算法進(jìn)行太陽光斑的識別,計算確定圖像中光斑的位置,然后通過計算獲取實際偏差,將光斑的實際偏移距離通過串口發(fā)送到控制系統(tǒng)中,圖2為軟件的流程圖。

    2 系統(tǒng)實現(xiàn)

    2.1 太陽光斑位置識別

    太陽能圖像分析系統(tǒng)的基本思想是采用輪廓與特征提取相結(jié)合的方法,首先系統(tǒng)采用VC++定時器的功能,每5s進(jìn)行一次太陽光斑位置的識別[6],獲取相應(yīng)的數(shù)據(jù),讀取圖片,然后獲取圖片的大小,根據(jù)圖片中點的像素值來判斷滿足要求的點,由滿足要求的點來判斷光斑的輪廓,根據(jù)輪廓來計算中心值。

    計算實際偏差值流程是計算每像素值對應(yīng)的實際距離參數(shù),根據(jù)這個參數(shù)算出實際距離。

    2.2 串口數(shù)據(jù)發(fā)送

    在獲取太陽光斑的位置數(shù)據(jù)后,采用Modbus通訊協(xié)議,用串口將數(shù)據(jù)發(fā)送出去,串口發(fā)送數(shù)據(jù)流程為,首先在初始化軟件時建立串口連接,然后監(jiān)聽端口,有數(shù)據(jù)發(fā)送過來后,執(zhí)行讀操作。獲取數(shù)據(jù)報文格式,根據(jù)報文格式組織數(shù)據(jù),執(zhí)行寫操作,將數(shù)據(jù)發(fā)送過去。圖3為串口發(fā)送數(shù)據(jù)流程圖[7]。

    2.3 程序?qū)崿F(xiàn)

    圖像分析監(jiān)測系統(tǒng)程序設(shè)計的重點是光斑的識別算法,還有主要的類的實現(xiàn),使用類封裝函數(shù)功能,使程序有很好的可讀性,并減少一些重復(fù)的工作[8]。在封裝的類中實現(xiàn)視頻流讀入、圖片保存、位圖編程以及串口通訊的實現(xiàn)。

    2.3.1 類的設(shè)計

    圖像分析監(jiān)測系統(tǒng)程序主要包含以下幾個類:①Class CRecoSunView:一個從基類CView繼承的類;②Class CBmproDlg:圖片處理類;③Class CComm:一個串口通訊類;④Class CDib:從CObject類繼承的類;⑤Class CSampleGrabberCB:從基類ISampleGrabberCB繼承的類。endprint

    主要類定義說明為:

    (1)CRecoSunView類。此類主要完成了以下功能,實現(xiàn)對參數(shù)的初始化,視頻圖象接口的初始化,視頻圖象的顯示,以及定時函數(shù)的實現(xiàn),圖象處理函數(shù)的調(diào)用,和串口通訊的實現(xiàn)。

    (2)CBmproDlg類。此類的主要功能是實現(xiàn)對圖片的讀取,圖片的分割掃描,掃描后對斑點中心點的判斷。

    (3)CComm類。此類的主要功能是實現(xiàn)對串口的操作,包括串口的打開,設(shè)置,以及數(shù)據(jù)發(fā)送和接收以及一個數(shù)據(jù)接收響應(yīng)線程。

    (4)CDib類。此類的主要功能是實現(xiàn)對位圖文件的裝載,讀文件,寫文件以及對位圖的各種屬性操作。

    (5)CSampleGrabberCB類。此類的主要功能是實現(xiàn)對視頻流中的圖片抓取,以及文件的保存。

    2.3.2 光斑識別算法

    識別光斑是在類CBmproDlg中進(jìn)行的,主要功能是實現(xiàn)對位圖的讀取,識別位圖中的光斑位置。識別光斑的算法為:

    (1)調(diào)用函數(shù)dib.load()函數(shù)讀取位圖,調(diào)用dib.GetWidth()和dib.GetHeight()獲取圖片的寬、高。

    (2)給數(shù)組xydata,line,pt分配空間大小。

    (3)按照定義的分割區(qū)域,進(jìn)行像素掃描,對滿足條件的像素進(jìn)行標(biāo)記,保存在xydata數(shù)組中。

    (4)掃描完成后,區(qū)域中的滿足條件的點組成線,對無法成線的斑點舍棄,得到的結(jié)果保存在line數(shù)組中。

    (5)由線來構(gòu)成一個斑點的形狀,并由組成的斑點的輪廓來計算斑點的中心值,結(jié)果保存在pt數(shù)組中。

    (6)由計算得到的斑點中心值與實際定義的中心相減,即得到偏差值。

    2.3.3 算法的程序?qū)崿F(xiàn)

    首先調(diào)用dib.load(lpszDibFile)函數(shù)來裝載圖片,ScanRect數(shù)組的數(shù)據(jù)即是分割的范圍,按照ScanRect數(shù)組定義的范圍進(jìn)行循環(huán),獲取滿足條件的點,獲取點后,調(diào)用OnOpen()函數(shù)。在OnOpen函數(shù)中,算法的實現(xiàn)為,當(dāng)點的標(biāo)志位為真時,則調(diào)用函數(shù)getline獲取線的范圍。依次調(diào)用,則最后獲取的就是線的范圍。然后調(diào)用OnGetp()函數(shù),函數(shù)的功能是有線獲取光斑的輪廓,當(dāng)line數(shù)組的標(biāo)志位為真時,調(diào)用getp()函數(shù)來獲取后繼的線還原輪廓,由輪廓獲取中心值[9]。

    if (dib.Load(lpszDibFile))

    {

    for(int scan=0;scan<4;scan=scan+2)

    {

    for(i=ScanRect[scan].x;i

    {

    m=0;

    for(j=ScanRect[scan].y;j

    {

    if(pan(i,j)) //判斷此點像素值是否滿足太陽光斑的特征

    {

    ……

    huafen(); //如滿足,找出y軸方向所有滿足光斑條件判斷的點

    }

    2.3.4 軟件代碼說明

    軟件代碼如下:

    float value=(float)254/(752*3);//計算實際一個像素的實際表示

    OnPhoto(); //抓取圖片

    CBmproDlg dlg;

    const char *lpctStr=(LPCTSTR)mCB.str;

    dlg.OnBrowse(lpctStr);//處理抓取的圖片,獲取數(shù)據(jù)

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

    {

    float x=(float)value*dlg.pot[i].x;

    float y=(float)value*dlg.pot[i].y;

    pot[i].x=(int)x;//(float)(value*dlg.pot[i].x));

    pot[i].y=(int)y;//(float)value*dlg.pot[i].y);

    }

    ChangeStatusBar();

    OnCOM();

    3 系統(tǒng)數(shù)據(jù)記錄與處理

    根據(jù)多日來定日鏡自動跟蹤太陽軌跡、反射光斑并進(jìn)行圖像修正的試驗,對軟件結(jié)果檢測:鏡子的中心像素位置為X:350、Y:312,計算實際距離的參數(shù)為10/7。

    利用算法得出的像素距離與鏡子的中心位置相減,即可得到光斑以鏡子中心位置為圓心的幾何坐標(biāo)值,再用計算實際距離的參數(shù)來算出實際距離。

    在獲取的圖片中,選出一部分圖片,如圖4、圖5,利用這3個參數(shù)設(shè)置,軟件的運行結(jié)果分別如下:

    光斑中心點:X:354 Y:319

    實際偏差:ΔX:5 ΔY:-10

    光斑中心點:X:362 Y:309

    實際偏差:ΔX:17 ΔY:4

    4 結(jié)語

    定日鏡的跟蹤控制是塔式太陽能發(fā)電系統(tǒng)的關(guān)鍵技術(shù),由于定日鏡執(zhí)行機構(gòu)不可測的因素使定日鏡運動出現(xiàn)偏差,本文設(shè)計了太陽光斑圖像識別跟蹤系統(tǒng),采用VC++圖像分析算法,有效實現(xiàn)了太陽光斑的識別與跟蹤。

    通過實際測試,在太陽光斑圖像識別跟蹤系統(tǒng)中,可以在監(jiān)視器上清晰看見每面定日鏡的輪廓及其反射的光斑,通過太陽光斑圖像識別跟蹤系統(tǒng)與其它系統(tǒng)的結(jié)合,可以控制定日鏡跟蹤太陽運行軌跡,把光斑實時反射到正確位置[10]。

    參考文獻(xiàn):

    [1] 杜春旭,吳玉庭,王普,等.塔式太陽能發(fā)電系統(tǒng)鏡場跟蹤角分析[J].工程熱物理學(xué)報,2012,33(9):1575-1579.

    [2] 余強,徐二樹,常春,等.塔式太陽能電站定日鏡場的建模與仿真[J].中國電機工程學(xué)報,2012,32(23):90-97.

    [3] 許芳.塔式太陽能定日鏡聚光成像建模及仿真[J].太陽能學(xué)報,2010,32(10):1304-1309.

    [4] 耿其,東朱天宇,陳飛.塔式太陽能熱發(fā)電中的定日鏡跟蹤系統(tǒng)設(shè)計[J].熱力發(fā)電,2009,38(2):81-83.

    [5] 王孝紅,劉化果.塔式太陽能定日鏡控制系統(tǒng)綜述[J].濟南大學(xué)學(xué)報,2010,24(3):302-307.

    [6] 王鵬飛,王鵬.基于Visual C++6.0的Windows應(yīng)用程序定時器研究[J].計算機技術(shù)與發(fā)展,2013,23(2):44-48.

    [7] 王中訓(xùn),徐超.基于VC++6.0的多串口通信方法[J].計算機應(yīng)用,2008,28(6):254-257.

    [8] 楊韜.用C語言實現(xiàn)類封裝的研究[J].微型機與應(yīng)用,2016,35(21):24-27.

    [9] 李洪雷.VC++環(huán)境下基于OpenCV的攝像機標(biāo)定系統(tǒng)的開發(fā)[J].計算機應(yīng)用與軟件,2011,28(6):19-22.

    [10] 王魏.塔式太陽能定日鏡聚光策略及其應(yīng)用仿真[J].上海電氣技術(shù),2014,97(3):36-40.

    猜你喜歡
    跟蹤識別
    工程建設(shè)手續(xù)辦理流程跟蹤與規(guī)劃移動應(yīng)用研究
    法學(xué)意義上的弱者識別問題研究
    淺談哈密瓜病蟲害的防治措施
    蘋果樹常見病蟲害防治技術(shù)
    青島市中山公園園林樹木易混淆品種識別
    跟蹤學(xué)情,及時調(diào)整教學(xué)策略
    考試周刊(2016年64期)2016-09-22 21:56:24
    論犯罪危險人格的識別
    基于視頻的手寫數(shù)字識別
    就業(yè)信息服務(wù)與跟蹤平臺研究和實現(xiàn)
    視覺特效合成技術(shù)發(fā)展思考
    青春歲月(2015年14期)2015-07-29 14:40:06
    信宜市| 额尔古纳市| 汤原县| 石景山区| 故城县| 唐山市| 施秉县| 巨鹿县| 察隅县| 临漳县| 弥渡县| 宣恩县| 巴东县| 东源县| 古交市| 鄱阳县| 句容市| 双江| 南投县| 潢川县| 辉南县| 同心县| 伊川县| 白朗县| 本溪市| 抚州市| 神木县| 新乡市| 上栗县| 拉萨市| 深水埗区| 红桥区| 奉化市| 庐江县| 呼伦贝尔市| 海兴县| 达孜县| 南华县| 襄城县| 佛坪县| 滨州市|