OpenCV3歷程(6) 工業相機和鏡頭的選型

2021-09-19 17:46:24 字數 1507 閱讀 7540

假設檢測乙個物體的表面劃痕,要求拍攝的物體大小為10*8mm,要求的檢測精度是0.01mm。首先假設我們要拍攝的視野範圍在12*10mm,那麼相機的最低分辨應該選擇為:

(12/0.01)*(10/0.01)=1200*1000,約為120萬畫素的相機。

也就是說乙個畫素對應乙個檢測的缺陷的話,那麼最低解析度必須不少於120萬畫素,但市面上常見的是130萬畫素的相機,因此一般而言是選用130萬畫素的相機。但實際問題是,如果乙個畫素對應乙個缺陷的話,那麼這樣的系統一定會極不穩定,因為隨便的乙個干擾畫素都可能被誤認為缺陷,所以我們為了提高系統的精準度和穩定性,最好取缺陷的面積在3到4個畫素以上,這樣我們選擇的相機也就在130萬乘3以上,即最低不能少於300萬畫素,通常採用300萬畫素的相機為最佳。

工業相機從晶元上分,有ccd和cmos兩種。如果要求拍攝的物體是運動的,要處理的物件也是實時運動的物體,那麼當然選擇ccd晶元的相機最為適宜。

如果我們要處理的是與影象顏色有關,那當然是採用彩色相機,否則建議你用黑白的,因為黑白的同樣解析度的相機,精度比彩色高。

根據要檢測的速度,選擇相機的幀率一定要大於或等於檢測速度,等於的情況就是你處理影象的時間一定要快,一定要在相機的**和傳輸的時間內完成。

運動速度和**時間是直接影響拖影的兩個因素。為了保證影象中的拖影不超過s單位畫素,則需要做到如下等價說法:

例如:某系統的拍攝精度是0.1mm/畫素,相機**時間是1/2000秒,拍攝物體運動速度是10mm/s,這樣目標在**時間內物體運動的距離是0.005mm<<0.1mm,因此可以用該系統拍攝。

已知:確定每一次檢測的範圍為80mm×60mm,200萬畫素ccd相機(1600×1200),相機或產品運動速度為12m/min=200mm/s

**時間計算步驟:

**時間《長邊視野範圍/(長邊畫素值*產品運動速度)

=80mm/(1600×200mm/s)

=1/4000s=0.00025s

故**時間要小於0.00025s,影象才不會拖影。

鏡頭介面只要可跟相機介面匹配安裝或可通過外加轉換口匹配安裝就可以了;鏡頭可支援最大ccd尺寸贏大於等於選配相機ccd晶元尺寸。正常的 1英吋=25.4mm,ccd相機沿用的 1英吋=16mm 且為對角線長度。

如圖所示,在已知相機ccd尺寸、工作距離(wd)、視野(fov)的情況下,可以計算出所需鏡頭的焦距(f)。

鏡頭的光圈大小決定的亮度,在拍攝告訴運動物體、**時間很短的應用中,應該選用大光圈鏡頭,以提高影象亮度。

遠心鏡頭是為糾正傳統鏡頭的時差而特殊設計的鏡頭,他可以在一定的物距範圍內,是得到的影象放大倍率不會隨物距的變化而變化。遠心鏡頭與傳統鏡頭對比,如圖:

OpenCV3中相機標定介面

2 標定 3 矯正 將n維向量轉化為n 1維向量,最後一維新增1 void cv convertpointstohomogeneous cv inputarray src,cv outputarray dst 將n維向量轉化維n 1維向量,除以最後1維 void cv convertpointsfr...

ubuntu上配置Qt和Opencv3

最近需要用qt寫乙個介面,然後就需要配置qt和opencv。我的電腦現狀是之前有安裝過opencv,所以只需要安裝qt和配置opencv環境 linux系統,ubuntu 4.4.0 21,37 x86 64.2.新建乙個工程,在 pro 檔案中配置opencv的庫檔案,配置清單如下 include...

opencv2和opencv3版本共存問題

由於開發的需要,要在電腦同時安裝opencv2和3兩個版本,實現版本的切換。下邊記錄的windows和linux cmake的版本切換方式。windows 然後在我的電腦屬性 環境變數中,增加乙個opencv home或者opencv dir之類的變數,記錄你的opencv版本,然後在path變數中...