本發(fā)明涉及一種圓陣列標定板特征點提取方法,屬于攝像機標定技術領域。
背景技術:
攝像機標定的途徑是根據(jù)攝像機模型,由已知特征點的圖像坐標和世界坐標求解攝像機的模型參數(shù),特征點提取的精度直接決定標定結果,現(xiàn)有很多算法特征點提取的精度很高,特征點的圖像坐標和空間點坐標的匹配度不高,有時還會出現(xiàn)相互混淆的情況,直接帶去計算極大的影響了標定結果。
技術實現(xiàn)要素:
本發(fā)明要解決的技術問題是提供一種圓陣列標定板特征點提取方法,首先針對攝像機標定的途徑是根據(jù)攝像機模型,由已知特征點的圖像坐標和世界坐標求解攝像機的模型參數(shù)這一關系,分析出特征點提取的精度直接決定標定結果,提出一種新的橢圓圓心特征提取算法,該方法有相對較高的精度,同時很好的解決了現(xiàn)有特征提取算法得到的特征點的圖像坐標和空間點坐標的匹配問題?,F(xiàn)有很多算法特征點提取的精度很高,特征點的圖像坐標和空間點坐標的匹配度不高,有時還會出現(xiàn)相互混淆的情況,直接帶去計算極大的影響了標定結果。本算法提取到的特征點圓心精度和匹配相對較高,可重復性好,使后續(xù)相機標定的效果更好。
本發(fā)明采用的技術方案是:一種圓陣列標定板特征點提取方法,包括如下步驟:
step1、設計制作圓形陣列(6×8)標定板;
step2、將標定板置于需要標定的ccd相機視野范圍內采集圓形陣列標定板的圖像;
step3、通過調整閾值滑動塊調整到合適的位置對采集到的圖像進行二值化;
step4、利用opencv中的findcontours函數(shù)提取圖像中所有的輪廓;
step5、針對每一個橢圓輪廓,直接利用最小二乘擬合算法對橢圓進行擬合,求解出其中心坐標、長軸長和短軸長,并保存在設置好的變量中;
step6、根據(jù)ccd相機畸變相對較小的特點,所采集到的圖像中的橢圓的長軸與短軸之比近似等于1,把長軸與短軸之比大于4/3橢圓剔除;
step7、計算余下橢圓的長軸長和短軸長的平均值;
step8、由于設計制作的標定板橢圓大小是一樣的,圖像中所有橢圓軸長相差不大,根據(jù)步驟step7計算得到的軸長平均值,把余下的橢圓中長軸長或短軸長小于3/4或大于5/4軸長平均值的橢圓剔除;
step9、設定判定范圍;
step10、以人機交互的形式利用鼠標光標手動點出圖像上的左上角橢圓圓心;
step11、以光標點為判定范圍的中心,在存有橢圓圓心坐標的變量找到屬于該范圍內的那個圓心坐標;
step12、將步驟step11找到的圓心坐標存儲在(point[0][0].x,point[0][0].y)中;
step13、利用鼠標光標手動點出圖像上的右上角橢圓圓心;
step14、執(zhí)行步驟step11找到該范圍內的圓心坐標并存儲在(point[0][7].x,point[0][7].y)
step15、利用鼠標光標手動點出圖像上的左下角橢圓圓心;
step16、執(zhí)行步驟step11找到該范圍內的圓心坐標并存儲在(point[5][0].x,point[5][0].y)
step17、利用鼠標光標手動點出圖像上的右下角橢圓圓心;
step18、執(zhí)行步驟step11找到該范圍內的圓心坐標并存儲在(point[5][7].x,point[5][7].y);
step19、根據(jù)四個角的圓心坐標和標定板的圓位置分布(6×8)計算所有特征點圓心的相對坐標,并根據(jù)步驟step9中設定的范圍以圓心相對坐標為搜索判定范圍的中心,判斷出所有圓心對應的序號,并存儲在(point[i][j].x,point[i][j].y)中;角點提取完成,并最終得到以數(shù)組序號i,j為標號圖像特征點的坐標。
所述步驟step1中,所設計的標定板為直徑為40mm的實心黑圓,進行(6×8)分布,圓心距為90mm。
所述步驟step9中,設定的判定范圍為1/4軸長為邊長的矩形方框。
本發(fā)明的有益效果是:本發(fā)明方法有相對較高的精度,同時很好的解決了現(xiàn)有特征提取算法得到的特征點的圖像坐標和空間點坐標的匹配問題?,F(xiàn)有很多算法特征點提取的精度很高,特征點的圖像坐標和空間點坐標的匹配度不高,有事還會出現(xiàn)相互混淆的情況,直接帶去計算極大的影響了標定結果。本算法提取到的特征點圓心精度和匹配相對較高,可重復性好,使后續(xù)相機標定的效果更好。
附圖說明
圖1本發(fā)發(fā)明整體步驟流程圖;
圖2本發(fā)明所述方法中step2攝像機采集到圖像;
圖3本發(fā)明所述方法中通過調整閾值得到二值圖后,進行橢圓擬合后剔除無關橢圓后得到的橢圓及圓心圖。
具體實施方式
以下結合實施例和附圖對本發(fā)明作進一步闡述,但本發(fā)明的保護內容不限于所述范圍。
實施例1:如圖1-3所示,一種圓陣列標定板特征點提取方法,包括如下步驟:
step1、設計制作圓形陣列(6×8)標定板;
step2、將標定板置于需要標定的ccd相機視野范圍內采集圓形陣列標定板的圖像;
step3、通過調整閾值滑動塊調整到合適的位置對采集到的圖像進行二值化;
step4、利用opencv中的findcontours函數(shù)提取圖像中所有的輪廓;
step5、針對每一個橢圓輪廓,直接利用最小二乘擬合算法對橢圓進行擬合,求解出其中心坐標、長軸長和短軸長,并保存在設置好的變量中;
step6、根據(jù)ccd相機畸變相對較小的特點,所采集到的圖像中的橢圓的長軸與短軸之比近似等于1,把長軸與短軸之比大于4/3橢圓剔除;
step7、計算余下橢圓的長軸長和短軸長的平均值;
step8、由于設計制作的標定板橢圓大小是一樣的,圖像中所有橢圓軸長相差不大,根據(jù)步驟step7計算得到的軸長平均值,把余下的橢圓中長軸長或短軸長小于3/4或大于5/4軸長平均值的橢圓剔除;
step9、設定判定范圍;
step10、以人機交互的形式利用鼠標光標手動點出圖像上的左上角橢圓圓心;
step11、以光標點為判定范圍的中心,在存有橢圓圓心坐標的變量找到屬于該范圍內的那個圓心坐標;
step12、將步驟step11找到的圓心坐標存儲在(point[0][0].x,point[0][0].y)中;
step13、利用鼠標光標手動點出圖像上的右上角橢圓圓心;
step14、執(zhí)行步驟step11找到該范圍內的圓心坐標并存儲在(point[0][7].x,point[0][7].y)
step15、利用鼠標光標手動點出圖像上的左下角橢圓圓心;
step16、執(zhí)行步驟step11找到該范圍內的圓心坐標并存儲在(point[5][0].x,point[5][0].y)
step17、利用鼠標光標手動點出圖像上的右下角橢圓圓心;
step18、執(zhí)行步驟step11找到該范圍內的圓心坐標并存儲在(point[5][7].x,point[5][7].y);
step19、根據(jù)四個角的圓心坐標和標定板的圓位置分布(6×8)計算所有特征點圓心的相對坐標,并根據(jù)步驟step9中設定的范圍以圓心相對坐標為搜索判定范圍的中心,判斷出所有圓心對應的序號,并存儲在(point[i][j].x,point[i][j].y)中;角點提取完成,并最終得到以數(shù)組序號i,j為標號圖像特征點(即圓心)的坐標。
進一步地,所述步驟step1中,所設計的標定板為直徑為40mm的實心黑圓,進行(6×8)分布,圓心距為90mm。
進一步地,所述步驟step9中,定判定范圍可適當調整,本實施例中采用1/4軸長為邊長的矩形方框。
以上結合附圖對本發(fā)明的具體實施方式作了詳細說明,但是本發(fā)明并不限于上述實施方式,在本領域普通技術人員所具備的知識范圍內,還可以在不脫離本發(fā)明宗旨的前提下作出各種變化。