摘 要:基于Matlab 7.6/Simulink 7.1設計的實現太陽圖像中光斑質心位置檢測系統的仿真實驗平臺,可以實現從圖像傳感器采集太陽圖像,并計算出光斑質心的圖像坐標及光斑個數。Simulink主系統包括圖像采集模塊、圖像增強子系統、圖像處理子系統和光斑信息顯示模塊。實驗結果表明,該仿真平臺能夠準確找出太陽圖像中光斑質心的圖像坐標,并給出光斑個數,該方法適用于基于圖像傳感器實現太陽自動跟蹤的系統。
關鍵詞:Matlab 7.6; 光斑; 圖像坐標; 太陽跟蹤
中圖分類號:TK513.4;TP391 文獻標識碼:A
文章編號:1004-373X(2010)12-0191-03
Detection of Spot Centroid Position in Sun Image
YOU Jin-zheng, ZOU Li-xin, ZHOU Tong, DU Wei-wei
(Department of Physics Science and Technology, Soochow University, Suzhou 215006, China)
Abstract: The simulation experiment platform which is designed on the basis of Matlab7.6/Simulink7.1 to detect the spot centroid position in the sun image can capture the sun image by means of the image sensor and calculate the image coordinate of the sun spot centroid and spot quantity. The Simulink main system consists of image acquisition module, image enhancement subsystem, image processing subsystem and spot information display module. The experimental results show that the simulation platform can accurately find out the image coordinate of the spot centroid in the sun image and give the number of spots. This method is suitable for sun automatic tracking system based on image sensor.
Keywords: Matlab7.6/Simulink7.1; spot; image coordinate; sun tracking
0 引 言
太陽能利用效率低的問題一直影響和阻礙著太陽能技術的普及,太陽自動跟蹤系統的設計為解決這一問題提供了新途徑,從而大大提高了太陽能的利用效率。目前,跟蹤太陽的方法可概括為2種方式:光電跟蹤和根據視日運動軌跡跟蹤[1-2]。光電跟蹤是由光電傳感器件根據入射光線的強弱變化確定太陽位置的。光電跟蹤的優點是靈敏度高,結構設計較為方便,其缺點是受到天氣的影響很大。而視日運動軌跡跟蹤的優點是不受外界天氣、雜光的干擾,具有較高的可靠性,缺點是在計算太陽角度的過程中會產生誤差,從而影響跟蹤精度。所以,提出一種采用以視日運動軌跡跟蹤為主,采用圖像傳感器反饋校正的閉環太陽自動跟蹤系統的設計方法,通過對步進電機水平、俯仰2個自由度的控制,實現對太陽的實時跟蹤。系統上位機部分由VC++實現太陽高度角與方位角的計算,單片機負責驅動步進電機動作實現太陽的跟蹤。在閉環部分,通過Matlab編程控制圖像傳感器捕捉太陽照片,經過圖像處理后得到圖像中太陽的質心坐標,由坐標偏差反饋矯正跟蹤系統。主要介紹一種太陽光斑質心位置檢測的方法,通過Matlab的M函數予以實現,并構建Simulink模塊仿真運行。實驗表明,該方法能準確找出圖像中光斑質心位置坐標,并由坐標偏差轉化為俯仰和方位電機校正步數。
1 系統總體設計
在此,主要介紹由Matlab M文件實現太陽圖像中光斑質心位置的檢測和實現Simulink模塊的仿真2部分。質心位置檢測系統的流程為:控制攝像頭采集太陽照片→圖像灰度轉化→圖像增強→圖像處理→數據顯示與保存。在采集時,太陽圖像由于太陽光強太強,CMOS或CCD鏡頭不能直接采集太陽照片,為了給圖像傳感器采集圖像創造條件,攝像頭部分加巴德膜太陽濾波片[3]。系統總體框圖如圖1所示。
整個系統的工作過程為:VC++首先從上位機控制界面的人機對話框中獲取當地的經緯度,并獲取當前時間,調用SUN函數,獲取太陽的高度角與方位角,并轉化為俯仰和水平電機的運行步數,經數據處理后,通過RS 485總線與單片機通信,驅動水平、俯仰2個步進電機動作,以實現對太陽的跟蹤。視日運動軌跡跟蹤結束后,VC++調用Matlab函數,控制圖像傳感器捕捉太陽圖片,經圖像處理后得到太陽圖像中太陽的質心坐標,根據圖像坐標與中心坐標的偏差轉化為水平和俯仰電機所需校正的步數,再次送給單片機反饋校正跟蹤裝置,從而構成閉環跟蹤系統。
圖1基于圖像傳感器的閉環太陽跟蹤系統總體框圖
2 M文件實現太陽質心位置的檢測
Matlab在控制攝像頭采集照片時,主要分為3個步驟:imaqhwinfo函數查詢webcamera的具體參數;利用videoinput函數創建視頻輸入對象;getsnapshot函數獲取視頻圖像。太陽圖像中光斑質心位置檢測的M文件所用到的主要函數包括videoinput,getsnapshot,rgb2gray,medfilt2,bwlabel,regionprops,cat等[4-5]。
M文件部分代碼如下:
function spotdetect()
obj=videoinput(′winvideo′,1,′RGB24_320x240′);
%攝像頭參數由imaqhwinfo函數獲得
imaginecaptured = getsnapshot(obj);
I=rgb2gray(imaginecaptured);
imagine_medfilt=medfilt2(I,[3 3]);%中值濾波
level = graythresh(imagine_medfilt);
imagine_threshold=im2bw(imagine_medfilt,level);
%二值化處理,默認的采用最大類間方差法
[L,num] = bwlabel(imagine_threshold,8)
CS= regionprops(L, ′centroid′);
centroids = cat(1, CS.Centroid);
hold on
plot(centroids(:,1),centroids(:,2),′O′,′MarkerEdgeColor′,′r′,′MarkerFaceColor′,′none′,′MarkerSize′,3)
hold off
%圖像中光斑加中心標記
center=CS.Centroid
if num = 1 %光斑個數為1時存質心坐標供VC調用
fp = fopen(′D:\\\\Test\\\\Centroids.txt′,′wt′);
fprintf(fp,′%f\\\%f\\\′,CS.Centroid(1),CS.Centroid(2));
fclose(fp);
else%光斑個數不為1時存圖像中心坐標供VC調用
fp = fopen(′D:\\\\Test\\\\centures.txt′,′wt′);
fprintf(fp, ′%f\\\%f\\\′, 160,120);
fclose(fp);
end
程序執行結果如下(攝像頭加雙層巴德膜太陽濾波片)如圖2所示。
圖2(a)為太陽光斑位置在第I象限,即光斑圖像坐標為(111,68),光斑個數為1,對應FYP為22,FWP為-49。圖2(b)為太陽光斑位置在第Ⅱ象限,即光斑圖像坐標為(210,70),光斑個數為1,對應FYP為21,FWP為50。圖2(c)為太陽光斑位置在第Ⅲ象限,即光斑圖像坐標(151,159),光斑個數為1,對應FYP為-16,FWP為-10。圖2(d)為太陽光斑位置在第Ⅳ象限,即光斑圖像坐標(281,155),光斑個數為1,對應FYP為-15,FWP為121。其中,FYP表示太陽跟蹤裝置中俯仰步進電機應運行的步數;FWP表示太陽跟蹤裝置中方位步進電機應運行的步數。
圖2 處于不同象限的太陽光斑位置
3 Simulink建模設計
3.1 基于Simulink的光斑位置檢測系統總體設計
主程序首先為“From Video Device”模塊,該模塊將自動識別連接到計算機的視頻輸入設備。將采集到的RGB圖片,經過“Color Space Convertion”模塊,將其參數設置為“R′G′B′to intensity”,之后轉化為灰度圖像,并送給“Imagine enhancement”子模塊;圖像增強模塊將處理得到的圖像送給“Imagine Processing”模塊;最后在“Display”模塊中顯示圖像中光斑個數(Num顯示)和光斑位置坐標(Centroids顯示)。光斑位置檢測系統總體設計如圖3所示。
圖3 基于Simulink的光斑質心位置檢測總體設計
3.2 “Imagine enhancement”子系統建模設計
“Imagine enhancement”子系統由“Gamma Correction”模塊和“Median Filter”模塊組成?!癐magine enhancement”子系統如圖4所示。
圖4中,Gamma 校正補償了不同輸出設備存在的顏色顯示差異,從而使圖像在不同的監視器上呈現出相同的效果。NTSC視頻的標準Gamma值為2.2。中值濾波是一種非線性數字濾波器技術,使用奇數個采樣組成的觀察窗去除圖像信號中的噪聲。中值濾波是圖像處理中的一個常用步驟,它對于斑點噪聲和椒鹽噪聲尤其有用[6-7]。
3.3 “Imagine Processing”子系統建模設計
“Imagine Processing”子系統如圖5所示?!癐magine Processing”子模塊主要由“Autothreshold”模塊、“Blob Analysis”模塊和“Draw markers”模塊3部分組成。“Autothreshold”模塊,利用Otsu方法(即最大類間方差法)將灰度圖像轉化成二值圖像。Otsu方法,因計算簡單,自適應強,而成為使用最廣泛的圖像閾值自動選取方法之一。“Blob Analysis”模塊,Blob分析是對圖像中相同像素的連通域進行分析,該連通域稱為Blob。
Blob檢測根據上面得到的處理圖像,在純色背景下檢測雜質色斑,經二值化處理后的圖像中色斑可認為是Blob。Blob分析工具可以從背景中分離出目標,并可計算出目標的數量、位置、形狀、方向和大小,還可以提供相關斑點間的拓撲結構。在“Blob Analysis”模塊參數設置中,將Statistics參數下只勾選Centroid項,Connectivity選擇8,并在Blob Properties菜單下勾選Output number blobs found,其他參數默認設置。當系統存在其他亮斑干擾時,可以采取Blob分析計算出光斑的面積,以確定是否在檢測范圍之內?!癉raw markers”模塊實現對輸入圖像中給定像素點做指定標記。其中,標記可設置為:圓形、十字形、星形、方形等,填充顏色用戶可自主定義。輸入端Pts格式為2×N階矩陣,N為給定像素點個數[8]。
圖4 基于Simulink的圖像增強子系統建模設計
4 Simulink仿真運行結果分析
圖像采集設備選用羅技公司的QuickCam系列網絡攝像頭。圖像大小設置為RGB 320×240,其他設置默認。網絡攝像頭采集到的太陽圖像,經灰度轉換模塊后作為圖像增強子系統輸入部分。對它進行Gamma矯正和中值濾波,實現圖像有用部分信息的增強。“Autothreshold”模塊計算Level將灰度圖像轉化成二值圖像。在仿真模擬時,可對其模塊的參數進行調整,復選“Scale threshold”選項,可對“Threshold scaling factor”的值進行設置。二值圖像經過Blob分析后,得到圖像中光斑個數與光斑質心坐標,將坐標矩陣送給“Draw markers”模塊進行圖像標記的添加。
圖5 基于Simulink的圖像處理子系統建模設計
Simulink仿真運行結果如圖6所示(攝像頭加單層巴德膜太陽濾波片)。本例太陽圖像中光斑個數為1,質心坐標為(153.5,165.7)。
圖6 基于Simulink的光斑位置檢測系統運行結果
5 結 語
在基于圖像傳感器實現對太陽自動跟蹤的系統中能否準確檢測出太陽光斑質心位置是實現太陽跟蹤的關鍵,決定著系統的精度和可靠性。本文設計關于太陽圖像中光斑質心位置檢測系統仿真實驗平臺,可以實現從網絡攝像頭采集太陽圖像,并準確計算出光斑質心位置的圖像坐標及光斑個數。該方法適用于基于圖像傳感器的太陽跟蹤系統,并可在其他的目標檢測中予以利用。
參考文獻
[1]劉巍,王志超,沈垣,等.太陽自動跟蹤系統的研究與設計[J].水電能源科學,2009(27):215-218.
[2]張翌翀.基于DSP的太陽跟蹤控制系統研究[M].上海:上 海交通大學出版社,2008.
[3]苑瑋琦,金晶晶.基于圖像傳感器的太陽方位檢測系統研究[J].傳感器與儀器儀表,2007(23):140-142.
[4]羅軍輝,馮平,哈力旦.Matlab 7.0在圖像處理中的應用[M].北京:機械工業出版社,2007.
[5]龔聲蓉,劉純平,王強,等.數字圖像處理與分析[M].北京:清華大學出版社,2007.
[6]董辰輝.Matlab 2008全程指南[M].北京:電子工業出版社,2009.
[7]HOSSAIN Eklas, MUHIDA Riza, ALI Ahad. Efficiency improvement of solar cell using compound parabolic concentrator and sun tracking system[C].IEEE Electrical Power Energy Conference. [ S.l.] : IEEE, 2008.
[8]張化光,劉鑫蕊,孫秋野.Matlab/Simulink實用教程[M].北京:人民郵電出版社,2009.