• 
    

    
    

      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
      浦城县| 射阳县| 宁津县| 襄垣县| 鄂伦春自治旗| 嵊泗县| 东阿县| 志丹县| 永平县| 葫芦岛市| 庆阳市| 丰台区| 襄樊市| 辽宁省| 周至县| 商都县| 旌德县| 锡林郭勒盟| 德昌县| 刚察县| 金塔县| 金山区| 岳普湖县| 曲沃县| 灵石县| 前郭尔| 阿坝| 静乐县| 荆州市| 邵武市| 迁西县| 贺兰县| 政和县| 福鼎市| 乐业县| 景洪市| 西乌珠穆沁旗| 富锦市| 都匀市| 神农架林区| 崇仁县|