OpenCV与相机的关系
經常碰到朋友,尤其是計算機視覺初學者朋友問到我關于OpenCV怎么獲取圖片,怎么把OpenCV跟相機結合起來這一類的問題。本人不才,不過,在平時的工作中,都接觸到這方面,今天特意發文章給有些朋友們解惑一下。
???? 我們做視頻分析或者說監控行業用的相機,一般來說,有兩種:(1)模擬相機;(2)數字相機;
???? 模擬相機,輸出的是模擬信號,也就是電壓的高低信號。這種相機,現在用在很多的監控場合,例如在銀行,當你坐在柜臺前的時候,你的頭頂上一般會有一個相機對著你的,據筆者觀察,其中的大部分,目前都屬于模擬相機;這種模擬相機的輸出一般可以通過AV信號線連接到電視上,也就是說,可以用一根信號線,把相機拍攝的圖片用電視機顯示出來。模擬相機還在馬路邊,小區門口的監控室(一般都是用這種相機)等場合見到。模擬相機得到的數據,在進入計算機進行保存、顯示、處理之前,需要轉換為數字信號(PC只能處理離散的數字信號)。所以,模擬相機在PC端,一般都有PCI接口的視頻轉接卡,這種視頻轉接卡,專業術語叫做“視頻采集卡”。例如,海康視頻采集卡;大華視頻采集卡;天敏視頻采集卡等,都屬于這一類; 通過它,模擬相機的模擬信號就轉換為數字信號。換句話說,就變成了JPG,BMP等格式的圖片,進而就可以被PC來顯示、處理了。
???? 數字相機,目前,常用的就只有RJ45接口和USB接口這兩種形式,也有個別相機采用1394接口的。RJ45接口,也就是我們上網用的網線接口,USB接口不用說,相信大家聊QQ都用過。數字相機,可以直接生成JPG或者BMP格式的圖片。不過,為了網絡傳輸的快捷,一般都以MPEG或者h.264視頻流的格式進行網絡傳輸。一般來說,采用RJ45接口數字相機進行開發的時候,相機的出售方,會給你提供該相機的SDK,通過該SDK,你就可以獲取相機發給PC端的網絡數據包,通過解壓該數據包(在相機SDK都提供),那么,你就獲得了一幀一幀的JPG或者BMP格式的圖片。如果相機的SDK最終提供給你的是JPG格式,那么,你還需要在內存里面把它解壓為BMP格式,然后,才能用Opencv的iplimage格式進行處理。如果是BMP格式,直接賦值給IPLIMAGE就Ok了。另外,USB接口的數字相機(也就是我們平常聊QQ用的攝像頭),可以通過直接調用opencv的函數(其實,內部是調用了windows的VFW)來獲取iplimage格式的數據,剩下的,就是采用opencv進行處理了。。
???? 相機與PC的連接方式,可以簡單的表述為下面的圖:
??? 總結一下,相機只是一個圖片數據獲取工具,獲取了圖片之后,需要把這些圖片“傳遞”給PC、DSP、ARM等處理終端,然后,在處理終端上,針對不同的需求,調用不同的OpenCV函數就能解決你的問題了。。
總結
以上是生活随笔為你收集整理的OpenCV与相机的关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于main函数中argc和argv的简
- 下一篇: QT简介