999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談OpenCV計算機視覺庫

2017-02-28 09:22:17杜聰
科技資訊 2016年28期
關鍵詞:計算機語言

杜聰

摘 要:用C、C++、Java等計算機語言編一個圖像識別程序,常常需要借助一些圖像處理的工具庫,OpenCV就是其中之一,使用OpenCV要比使用計算機應用軟件困難,需要前期復雜的準備工作,如果了解了OpenCV與其他圖像處理應用軟件的區別、學習OpenCV的基礎、運行環境、圖像操作原理以及OpenCV文檔包含的內容,學習和使用OpenCV就會容易很多。

關鍵詞:圖像處理 OpenCV C C++

中圖分類號:TP31 文獻標識碼:A 文章編號:1672-3791(2016)10(a)-0007-02

圖像識別技術已經應用到生活中的許多方面。文字識別系統,直接把圖片上的文字掃描成文本文檔格式。人臉識別技術已經用到了智能手機之中,現在的手機解鎖可以直接使用人臉識別。指文圖像識別的應用更為廣泛,如辦理身份證、入學考試、駕照等用來確認身份。百度、Google、蘋果等公司研究的無人駕駛汽車,將該技術用于對障礙物、路標、行人及其他車輛的判斷。道路交通監控系統中,系統自動檢索違規車輛,并對車輛的車牌等信息進行識別。通過車牌提取、圖像預處理、特征提取、車牌字符識別等技術,識別車輛牌號,目前,字母和數字的識別率可達96%,漢字的識別率可達95% [1-2]。所有的這些都用到了圖像識別功能,要編寫圖像識別程序使用OpenCV是一個不錯的選擇。

1 OpenCV簡介

OpenCV是Intel公司于1999年推出的一種面向圖像處理的開源計算機視覺庫,其中,OpenCV是Open Source Computer Vision Library的縮寫,如今由Willow Garage提供支持,其中包括了3個版本OpenCV1、OpenCV2、OpenCV3,除了OpenCV1現在很少使用外,其他兩個版本已經有了很多改進的版本。OpenCV有開源的函數庫,可以滿足不同領域的圖像處理需求,使用時以函數調用的形式提供給用戶,也可以對其代碼進行改進,便于用戶實驗教學或程序開發使用。

2 OpenCV的特點

(1)開源。OpenCV是一個開源的圖像處理函數庫,無論是商業應用,還是做科學研究,完全是免費的,與Linux類似它的源代碼也是公開的,這樣程序的安全性就得到保障,OpenCV的函數庫是用C語言和C++語言進行編寫的,源代碼可讀性比較高,發現其中不足之處可以自行進行修改,避免編譯后的可執行文件出現漏洞。

(2)跨平臺。OpenCV是一個基于BSD許可(開源)發行的跨平臺計算機視覺庫,可以運行在Windows、Linux、Mac OS和嵌入式等操作系統上[3]。

(3)應用領域廣。OpenCV圖像處理可以使用到多個領域當中,包括生物醫學、工業、軍事安防、機器視覺、航空航天等。目前已知OpenCV編程系統在航空航天定位、衛星地圖繪制、工廠大規模生產視覺檢測等方面得到了廣泛的應用,同時對于無人飛行器的視覺捕捉技術也有極大的幫助[4]。

(4)支持多種語言進行開發。OpenCV中包括了多種編程語言的接口,其中支持的編程語言包括C、C++、C#、Java、Python等。

3 OpenCV與圖像處理應用軟件

在計算機學習中也會學到一些其他的圖像處理軟件,如Photo Shop、Windows畫圖工具等在計算機中使用的圖像處理工具。在手機中有一個比較流行的軟件,在拍好照片后可以對個人照片進行智能美化,這些軟件都是應用軟件缺少編程需要的接口,這些軟件處理圖像后只是給出結果,無法取到程序處理所需要的中間參數,只能局限于最后的結果展示,如果只是單純的圖像制作, Photo Shop類的圖像處理工具已經足夠了。但是對于圖像識別、機器視覺等,需要對圖像內容做出判斷,用類似于Photo Shop這樣的圖像處理軟件就無法完成了,因為無法集成到所編寫的程序當中。OpenCV是一個圖像處理函數庫,其中包涵了對于計算機操作系統和計算機語言編譯平臺支持的API接口以及源碼庫,可以在編寫的程序中去處理圖像,不但可以得到圖像處理后的結果,還可以對圖像中間的處理過程進行控制,可以對圖像中的內容用自己編寫的程序代碼進行判定,實現識別操作。

4 學習OpenCV的基礎

C和C++語言在工科類專業中一般設置必修課程,C語言常作為一門基礎的編程語言來教,有的學生覺得C比較容易,有的學生感覺比較難,這個取決于每個人對計算機語言的理解能力與對計算機語言的興趣,C和C++的區別在于C++增加了類,支持面向對象編程。新版OpenCV函數庫是基于C++的,打開源代碼的文件夾可以看到許多以.cpp結尾的C++代碼文件,所以對于C和C++的掌握情況直接關系到對OpenCV的學習。

5 OpenCV的運行環境

在學習每種計算機語言之前都要對每種計算機語言的IDE(Integrated Development Environment,集成開發環境)進行安裝和配置,集成開發環境不只是用來編輯程序代碼,還包括了對代碼的編譯、調試與運行等。如Java語言,在Windows操作系統中Java語言最簡單的編輯環境是記事本,對于Java的編譯與運行需要用到命令窗調用所安裝JDK(Java Development Kit,Java開發包)中的編譯程序與運行環境,如果是集成的IDE,如Eclipse、MyEclipse等,點擊IDE上的運行或是調試按鈕,就可以在IDE中的結果輸出窗口上直接查看運行結果。OpenCV是用C和C++語言所編寫的圖像處理函數庫,它沒有自己獨立的IDE,所以它需要借助其他編程語言的IDE進行編寫和調用,如Microsoft Visual Studio、QT Creator等。

配置開發環境是學習OpenCV中重要的一步,但是這個過程相對于初學者來說有些復雜。首先,要從網上下載并安裝計算機語言的開發環境,如微軟的Visual Studio、QT集成開發環境等。其次,下載并安裝OpenCV的安裝包,安裝OpenCV是一個解壓的過程。下一步,就是對開發環境的配置,其中要對系統變量、包含目錄、附加依賴項進行配置。然后進行調試運行。在對開發環境配置時,為保證OpenCV庫與本地開發環境兼容性更好,最好使用CMaker(Cross Platform Make)在本地環境中對OpenCV源代碼重新編譯。

6 OpenCV中的Hello World

在學習C或是java語言時,常常會有一個重要的標志就是‘Hello World!,標志著系統配置完成并且整個IDE環境運行正常,編譯系統成功的編譯了所寫的代碼,并且在操作系統中執行成功。OpenCV中這個標志有所不同,它的‘Hello World!是在IDE中編寫好代碼后,調用OpenCV中的函數打開一幅代碼中指定的圖片并顯示到新建的窗口中,標志著IDE中的參數是正確的,這是進行圖像操作的重要一步。

7 OpenCV圖像像素操作

對于數值的計算是第一步一般輸出一個結果,在學任何一門計算機語言時會有一個很好的例子“計算器”,那圖像如何去表示?其實圖像是多個結果的一個集合,就像在C語言中打出星號所組成的菱形,每一個星號可以比喻成一個圖像中的像素點。對于圖像處理過程中常常見到的有3種:第一種,RGB圖像,彩色的圖像,每個像素點由3個數值表示。第二種,灰度圖像,像以前的黑白電視機,每個像素點由一個數值就可以表示。第三種,二值圖像,每個像素點由一個數值表示。在OpenCV中有多種方法可以對圖像進行操作,其中比較方便的就是利用cv::Mat類,對圖像進行打開、顯示、修改和保存,這也是進行圖像操作的重要一步。

8 OpenCV的文檔

大家在OpenCV官網提供的文檔中可以得到更多幫助。在OpenCV的文檔中包括了對組件結構的介紹,了解OpenCV的組件結構對學習OpenCV是十分有利的,該介紹包括了一系列的動態或靜態庫,如矩陣數組的定義、圖像處理模塊包含的內容、視頻分析所需要的算法、基本的多視覺算法、外部特征的檢測類、物體的檢測類、UI類的使用、圖像算法的硬件加速等,在編寫代碼時可以查找其類中對象所包含成員和方法。一些OpenCV圖書所帶的光盤中或互聯網上網友提供的圖像處理代碼,由于編程使用的操作系統或編譯環境不同,有些代碼會包含未知的頭文件或者缺少頭文件,代碼本身并沒有錯誤,但總是編譯出錯,了解了這些知識后在編程時,有利于定位在程序中所引用的文件所屬的位置,從而有效地處理文件引用出現的問題。

無論對什么樣的物體進行識別,圖像識別過程基本是不變的,包括:圖像預處理、圖像分割,特征提取、判斷匹配、輸出結果。圖像預處理中會用到圖像的灰度化、圖像的二值化、去除圖像的噪聲等算法。特征提取中會用到圖像變換、圖像邊緣檢測等算法。判斷匹配中用到直方圖、投影等算法。圖像分割有3種:基于閾值的分割、基于區域分割、基于邊緣的分割[5]。在OpenCV的文檔中都詳細提供了基本算法類的定義與方法,通過OpenCV的代碼庫中的基本算法類或幾個基本算法類的組合可以實現以上所列算法的所有功能。

9 結語

據統計,一個人獲取的信息大約有75%來自視覺 [6]。在工業4.0的時代里機器也需要有自己的視覺系統,基于圖像處理的機器視覺在人工智能領域會得到更廣泛的應用,如:無人駕駛汽車、智能機器人、智能安防系統等。OpenCV是一個進入這些行業的重要工具之一,圖像處理的學習過程是一個循序漸進的過程,希望學習者在OpenCV的基礎上提高對于圖像處理的認識及對圖像處理的技術水平。

參考文獻

[1] 姚楠,耿奇.基于MATLAB GUI 的車牌自動識別系統設計[J].軟件,2016,37(3):44-46.

[2] 李珊珊,劉純.基于FPGA 車牌識別系統的設計與實現[J].軟件,2012,33(3):72-74.

[3] (加)Robert Laganière,著.OpenCV計算機視覺編程攻略[M].2版.相銀初,譯.北京:人民郵電出版社,2015.

[4] 陳雪嬌.基于OpenCV的計算機視覺技術研究[J].電腦知識與技術,2015(30):137-138,141.

[5] 張家怡.圖像識別的技術現狀和發展趨勢[J].電腦知識與技術,2010(21):6045-6046.

[6] 賈永紅.數字圖像處理[M].武漢:武漢大學出版社,2003:1.

猜你喜歡
計算機語言
計算機操作系統
穿裙子的“計算機”
趣味(數學)(2020年9期)2020-06-09 05:35:08
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
計算機多媒體技術應用初探
科技傳播(2019年22期)2020-01-14 03:06:30
讓語言描寫搖曳多姿
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
多向度交往對語言磨蝕的補正之道
累積動態分析下的同聲傳譯語言壓縮
我有我語言
主站蜘蛛池模板: 在线观看免费国产| 久久综合伊人 六十路| 香蕉网久久| 精品在线免费播放| 国产真实二区一区在线亚洲| 亚洲成人高清在线观看| 国产精品密蕾丝视频| 日韩欧美国产中文| 婷婷开心中文字幕| 欧美一级视频免费| 伊人久久青草青青综合| 成人亚洲国产| 亚洲AV成人一区国产精品| 在线视频亚洲欧美| 1024国产在线| 国产又黄又硬又粗| 午夜视频免费试看| 国产高清国内精品福利| 美女被狂躁www在线观看| 精品一区国产精品| 国产精品成人免费视频99| 久久精品国产精品青草app| 国产免费怡红院视频| 九色综合伊人久久富二代| 日本人又色又爽的视频| 亚洲AV无码乱码在线观看代蜜桃 | jizz在线观看| 四虎影视8848永久精品| 亚洲精品国产成人7777| 97国产在线视频| 激情无码字幕综合| 亚洲中文字幕在线一区播放| 欧美成人亚洲综合精品欧美激情| 宅男噜噜噜66国产在线观看| 日韩高清欧美| 国产精品开放后亚洲| 好久久免费视频高清| 精品三级网站| 性色一区| 呦女精品网站| 色综合网址| 精品久久国产综合精麻豆| 国产老女人精品免费视频| 亚洲国产理论片在线播放| 免费无码AV片在线观看中文| 日本a∨在线观看| 亚洲人成亚洲精品| 午夜不卡视频| 中文国产成人精品久久一| 色噜噜久久| 亚洲专区一区二区在线观看| 在线欧美a| 国产一区二区三区精品久久呦| 最新加勒比隔壁人妻| 国产综合亚洲欧洲区精品无码| 国产午夜不卡| 久久亚洲国产最新网站| 国产不卡在线看| 中文字幕永久视频| 熟女日韩精品2区| 永久免费无码成人网站| 久久精品国产91久久综合麻豆自制| jizz在线免费播放| 亚洲人免费视频| 中文字幕伦视频| 成人在线不卡视频| av午夜福利一片免费看| 亚洲第一成年人网站| 在线免费看片a| 思思热在线视频精品| 国产精品护士| 久久久久久久久久国产精品| 精久久久久无码区中文字幕| 99er精品视频| 久久免费成人| 免费啪啪网址| 无码高潮喷水在线观看| 国产美女自慰在线观看| 免费大黄网站在线观看| 国产91高清视频| 国语少妇高潮| 亚洲精品桃花岛av在线|