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

?

高精度太陽方位檢測圓弧算法*

2019-06-18 10:05:08張康龍王冠偉王洪喜
關(guān)鍵詞:光斑圓心圓弧

張康龍,王冠偉,王洪喜

(西安工業(yè)大學(xué) 機電工程學(xué)院,西安 710021)

太陽能是一種可再生清潔能源,有著廣闊的應(yīng)用前景。太陽能跟蹤系統(tǒng)能夠提高太陽能的利用效率,其中太陽方位檢測精度限制了跟蹤系統(tǒng)的精度。近年來,很多學(xué)者通過圖像處理方式來獲取太陽方位,以提高太陽檢測的精度。

目前常見的幾種圖像處理檢測方式為:最大灰度值法[1],最小二乘圓擬合法[2],質(zhì)心法[3-4]等。其算法簡單,但多云情況下檢測精度不高。文獻[5]通過圓弧算法計算太陽中心,雖然可以解決多云天氣太陽檢測的問題,但是需要太陽的影像大于完整太陽影像的1/2。圓弧算法是解決多云天氣太陽檢測的關(guān)鍵。圓弧檢測常用的方法是霍夫圓檢測,這種方法所需的內(nèi)存較大,計算量大[6-7]。改進的霍夫圓檢測算法[8-9]和其他圓檢測算法[10-11]雖然提高了計算速率,但針對的都是比較完整的圓檢測,對于只剩下小部分圓弧,且邊緣可能不平滑的太陽圖像檢測效果不佳。文中根據(jù)太陽圖像特點設(shè)計了新的圓弧算法,用于尋找太陽圖像的圓弧,可根據(jù)太陽影像的1/8圓弧計算太陽光斑中心。

1 太陽方位檢測原理

圖像處理檢測方式需要拍攝太陽圖像,但有時因為云層遮擋看不見太陽,也需要天文算法與之結(jié)合,檢測原理步驟如下:

① 采集太陽圖像;

② 對圖像進行灰度變換、濾波、二值化、邊緣檢測等預(yù)處理,并計算太陽光斑面積A;

③ 若A>T(T為光斑面積閾值,只有當(dāng)A大于T時才適合用圖像處理),轉(zhuǎn)④,否則根據(jù)天文算法計算太陽方位,轉(zhuǎn)⑥;

④ 利用圓弧檢測算法,根據(jù)太陽光斑輪廓上的圓弧計算光斑圓心;

⑤ 將光斑位置轉(zhuǎn)換成太陽實際方位;

⑥ 系統(tǒng)跟蹤對準(zhǔn)太陽,轉(zhuǎn)①。

2 圓弧檢測算法

對原始太陽圖像進行灰度化,濾波,二值化等預(yù)處理,減少圖像數(shù)據(jù)信息,并過濾掉噪聲等干擾,使其邊緣更加平滑。如果太陽有光暈,則對圖像高灰度區(qū)域進行拉伸擴展,去掉光暈。文中采用均值濾波方式對圖像進行平滑處理,使用Otsu’s方法找到合適的閾值,將圖像二值化,使用‘Canny’算子檢測太陽輪廓。對太陽輪廓進行取點,對采樣點使用圓弧算法,得到太陽光斑中心。文中對太陽圓弧的檢測設(shè)計了兩種算法,相同點都是先對太陽輪廓進行取點,并計算曲率半徑,不同之處在于圓弧的篩選方法:算法一根據(jù)曲率半徑分布的頻率直方圖來篩選最合適的圓??;算法二根據(jù)采樣點計算出一系列圓,根據(jù)采樣點與圓的位置符合程度篩選最合適的圓。

2.1 太陽輪廓取點規(guī)則

算法不直接采用太陽輪廓數(shù)據(jù)計算,而是在太陽輪廓上選取一部分點,可以減少計算量,避免了一些錯誤輪廓點的干擾,并利用這些點進行曲率半徑的計算。太陽輪廓取點遵循以下規(guī)則:

1) 兩個采樣點之間的距離需要限制。圖像中的太陽輪廓比較復(fù)雜,尤其是多云天氣下的太陽輪廓,會有很多毛刺,即使經(jīng)過了濾波平滑處理,邊緣也不是規(guī)則的圓,只是近似的圓。且輪廓以像素表示,相鄰的幾個像素接近直線,如果以距離很近的3個像素點計算曲率半徑,則會出現(xiàn)較大的誤差,所以相鄰的兩個取樣點要有足夠的距離,才能保證計算正確。兩個取樣點之間的距離應(yīng)大于最小距離dmin,dmin通過實驗得到。

2) 只采集太陽外部凸起輪廓上的點。原理如圖1所示,圖中黑粗線代表太陽輪廓,找出輪廓在橫向與縱向的極值點,分別標(biāo)記為H,B,D,F,利用這四個極值點建立最小外接矩形ACEGA。將輪廓分成HB,BD,DF,FH四段,從H點開始,順時針對這四段分別取點,并按取點順序依次存入矩陣中。太陽輪廓被遮擋后,本來是外凸的圓弧可能變成內(nèi)凹的不規(guī)則邊緣,如果這些邊緣點落入四邊形HBDFH之內(nèi),則它們不是真實的太陽輪廓,不用對這些輪廓采點,可以避免一部分非太陽真實曲率半徑的干擾。

圖1 太陽輪廓取點原理Fig.1 Schematic diagram of point selection on the solar contour

以HB段輪廓為例,太陽輪廓取點具體步驟如下:

① 先將H點作為第一個取樣點,存入矩陣C中,并將H所在的列作為第一列,令i=2;

② 從第i列開始列掃描,掃描起點是A所在的行,終點是i+1列與HB的交點所在的行,當(dāng)掃描到輪廓HB的點,則轉(zhuǎn)③,否則繼續(xù)當(dāng)前列掃描,掃描完后轉(zhuǎn)4;

③ 判斷當(dāng)前點與前一取樣點的距離d,若d>dmin,則存入矩陣C,否則不存入;

④i=i+1,若i>L,則結(jié)束,否則轉(zhuǎn)②,L是A點到B點像素的總列數(shù)。

2.2 圓弧算法一

圓弧算法一原理:在一個圓上取若干點,以相鄰的三點為一段,將一個圓分成若干段圓弧。根據(jù)三點確定一個圓,圓的每段圓弧的曲率半徑都可以由三個點計算得到。圓的每段圓弧的曲率半徑都是一致的,如果圓被不規(guī)則幾何體遮擋,形成殘缺圓,則遮擋部分的曲線是不規(guī)則的,沒有一致的曲率半徑。在殘缺圓上取點,分段,計算殘缺圓整個輪廓的曲率半徑。以曲率半徑為橫坐標(biāo),曲率半徑的段數(shù)為縱坐標(biāo),繪制曲率半徑頻率分布圖,則曲率半徑分布最多的半徑區(qū)域就是規(guī)則圓弧的曲率半徑。同理,可以繪制圓心坐標(biāo)直方圖,統(tǒng)計圓心坐標(biāo)落點最多的區(qū)域,這個區(qū)域就是圓心所在的坐標(biāo)范圍,取區(qū)域的中點作為圓心坐標(biāo)。

算法一的具體步驟如下:

① 按照太陽輪廓取點規(guī)則在輪廓上采集m個點,并將所取點的列坐標(biāo)存入矩陣X,行坐標(biāo)存入矩陣Y中,并令i=1;

② 分別計算{X(i),Y(i)},{X(i+1),Y(i+1)},{X(i+2),Y(i+2)}三點組成的圓的圓心(cx(i),cy(i))和半徑r(i);

③ 若i

④ 設(shè)置半徑r的范圍,規(guī)定上限r(nóng)max和下限r(nóng)min,將超出范圍的r過濾掉,在區(qū)間內(nèi)的r放入矩陣r1中,與r1對應(yīng)的圓心坐標(biāo)存入矩陣cx1,cy1中;

⑤ 對r1做直方圖統(tǒng)計,以n個像素為一個小區(qū)間,將rmin~rmax分段,找出落點最多的區(qū)域,取它的中點坐標(biāo)即為太陽的半徑值,記為R;

⑥ 找[R-n/2,R+n/2]區(qū)間內(nèi)的半徑,存入矩陣r2,并找出與r2對應(yīng)的圓心坐標(biāo),對圓心坐標(biāo)進行直方圖統(tǒng)計,找出最佳圓心坐標(biāo)的小區(qū)間,取區(qū)間的中值記為(CX,CY),此坐標(biāo)即為太陽光斑中心坐標(biāo)。

2.3 圓弧算法二

圓弧算法二原理:按取點規(guī)則在太陽輪廓上等距取若干點,以3個點為一組,計算3個點所確定的圓的圓心及半徑,這些圓稱作候選圓。將候選圓與采樣點進行位置判斷,如果候選圓與太陽殘缺輪廓吻合,那么輪廓上所有采樣點均在這個圓內(nèi)或圓的邊緣,據(jù)此判斷出最符合的候選圓,此圓的圓心坐標(biāo)即太陽光斑中心。

算法二的具體步驟如下:

①~③同算法一;

④設(shè)i=1;

⑤ 對每一個采樣點,計算其與候選圓的圓心(cx1(i),cy1(i))之間的距離,并存入矩陣r3;

⑥ 計算滿足r3<1.05×r1的采樣點的個數(shù),記為a1(i),計算滿足0.95×r1

⑦若i=t,則轉(zhuǎn)⑧,t為候選圓的個數(shù),否則i=i+1,轉(zhuǎn)⑤;

⑧找出a3最大值對應(yīng)的圓心坐標(biāo),記為(CX,CY),此坐標(biāo)即太陽光斑中心坐標(biāo)。

3 實驗與分析

3.1 實 驗

實驗在Matlab 2014上進行,分別用兩種算法對一張晴天,三張多云的太陽圖像進行處理,被處理圖像及處理結(jié)果如圖2所示,算法一處理結(jié)果以‘+’和圓標(biāo)記,圓為檢測到的太陽輪廓,‘+’為檢測到的光斑圓心位置,算法二處理結(jié)果以‘.’標(biāo)記檢測到的圓心位置。圖2(a)為晴天太陽圖像,圖2(b)~(d)為多云天氣的太陽圖像,可看出兩種算法對晴天和多云天氣的太陽圖像均能找到光斑中心,且處理結(jié)果基本一致。

3.2 精度分析

評定算法對殘缺太陽光斑處理的精度,需要一張標(biāo)準(zhǔn)的太陽光斑圖像,并用高精度檢測算法的檢測結(jié)果作為標(biāo)準(zhǔn)。標(biāo)準(zhǔn)的太陽光斑圖像應(yīng)滿足條件:① 沒有云層遮擋,光斑完整,接近理想的圓;② 用高精度圓心檢測方法對其檢測的結(jié)果應(yīng)保持一致。目前常用的高精度圓心檢測算法有質(zhì)心法,最小二乘圓擬合法,因此可用這兩種算法來檢測。

圖2(a)滿足標(biāo)準(zhǔn)太陽光斑圖像的第一個條件,分別用質(zhì)心法、最小二乘圓擬合法對其進行處理,判斷是否滿足第二個條件,其計算結(jié)果見表1。圖像坐標(biāo)原點在左上點,縱坐標(biāo)x從上往下遞增,橫坐標(biāo)從左向右遞增,圖像總大小為1 200×1 600像素。最小二乘圓擬合法的檢測結(jié)果與質(zhì)心法高度一致,僅在x坐標(biāo)上差了一個像素,因此圖2(a)可作為標(biāo)準(zhǔn)圖像,質(zhì)心法的結(jié)果可作為標(biāo)準(zhǔn)坐標(biāo)。

圖2 兩種算法對太陽圖像的處理Fig.2 Solar image processed by both algorithms

表1 兩種算法對圖2(a)的處理結(jié)果

對圖2(a)的太陽進行不同程度的遮擋,用算法一、算法二、最小二乘法和質(zhì)心法四種算法檢測其圓心,并將圓心坐標(biāo)與標(biāo)準(zhǔn)值對比,求出這四種算法對殘缺太陽光斑的檢測精度。對文中算法進行多次實驗,取出其中10次實驗進行分析對比。遮擋后的圖像如圖3所示,圖中的圓心標(biāo)記為算法一處理的結(jié)果,四種算法的檢測偏差見表2。由表2可看出,最小二乘擬合法與質(zhì)心法無法正確計算出殘缺光斑的圓心,而算法一與算法二都能準(zhǔn)確找出圓心,算法一的偏差在[4,34]像素范圍,平均偏差為15像素,算法二的偏差在[2,44]像素范圍,平均偏差為12像素,算法二的平均精度較高。

Δ=δ·f

其中δ為檢測結(jié)果的像素偏差,則

算法一檢測平均誤差為Δ1=δ1·f=0.53′;

算法二檢測平均誤差為Δ2=δ2·f=0.42′。

圖3 算法一處理結(jié)果Fig.3 Results obtained by the first algorithm

實驗次數(shù)算法一偏差算法二偏差最小二乘圓擬合偏差質(zhì)心法偏差11444204229292152137334926426241641427516211211606781524574232181210276271995116110103014121132最大偏差3444276271最小偏差42321平均偏差1512129159

4 結(jié) 論

以殘缺太陽圖像為研究對象,文中對圖像進行灰度化、濾波、二值化、邊緣檢測等預(yù)處理,對太陽輪廓采點并計算曲率半徑,根據(jù)曲率半徑的頻率分布或采樣點與候選圓的符合程度篩選圓弧,提出基于圓弧檢測的圖像處理檢測方式。

文中利用Matlab進行程序設(shè)計與驗證分析,分別對10幅圖進行檢測實驗,檢測結(jié)果算法一的平均誤差為0.53′,算法二的平均誤差為0.42′,均優(yōu)于最小二乘圓擬合偏差方法和質(zhì)心法偏差方法,解決了多云天氣太陽的尋找中心問題。多云天氣情況復(fù)雜,其圖像有時并不理想,當(dāng)其邊緣有較大變形時,僅僅用圓弧算法無法保證處理的正確性,需要結(jié)合其他算法或者用太陽位置預(yù)測值替代圖像處理結(jié)果。

猜你喜歡
光斑圓心圓弧
二次曲線的一個類似圓心的性質(zhì)
我愛塵世的輕煙和光斑
都市(2023年6期)2023-12-28 07:56:54
光斑
詩歌月刊(2023年1期)2023-03-22 14:06:24
淺析圓弧段高大模板支撐體系設(shè)計與應(yīng)用
外圓弧面銑削刀具
有趣的光斑
有趣的光斑
以圓周上一點為圓心作圓的圖的性質(zhì)及應(yīng)用
數(shù)控車削圓弧螺紋程序編制與加工
等截面圓弧無鉸板拱技術(shù)狀況評價
武功县| 广南县| 昂仁县| 临猗县| 宿松县| 遂川县| 青阳县| 视频| 高要市| 乌拉特前旗| 丹凤县| 望奎县| 沾益县| 龙井市| 两当县| 库尔勒市| 周口市| 纳雍县| 碌曲县| 洪洞县| 孟津县| 乳山市| 东平县| 京山县| 桦甸市| 巴林右旗| 建阳市| 兴城市| 泗洪县| 河间市| 麻栗坡县| 钟山县| 鱼台县| 丹东市| 赫章县| 虹口区| 西充县| 左云县| 常熟市| 孙吴县| 沭阳县|