国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

開源計(jì)算機(jī)視覺庫OpenCV詳解

這篇具有很好參考價(jià)值的文章主要介紹了開源計(jì)算機(jī)視覺庫OpenCV詳解。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

1、概述

2、OpenCV詳細(xì)介紹

2.1、OpenCV的起源

2.2、OpenCV開發(fā)語言

2.3、OpenCV的應(yīng)用領(lǐng)域

3、OpenCV模塊劃分

4、OpenCV源碼文件結(jié)構(gòu)

4.1、根目錄介紹

4.2、常用模塊介紹

4.3、CUDA加速模塊

5、OpenCV配置以及Visual Studio使用OpenCV

6、關(guān)于Lena圖片

7、OpenCV和OpenGL的區(qū)別

8、OpenCV與YOLO的區(qū)別

9、OpenGL與DirectX的區(qū)別


VC++常用功能開發(fā)匯總(專欄文章列表,歡迎訂閱,持續(xù)更新...)https://blog.csdn.net/chenlycly/article/details/124272585C++軟件異常排查從入門到精通系列教程(專欄文章列表,歡迎訂閱,持續(xù)更新...)https://blog.csdn.net/chenlycly/article/details/125529931C++軟件分析工具案例集錦(專欄文章正在更新中...)https://blog.csdn.net/chenlycly/category_12279968.html

C/C++基礎(chǔ)與進(jìn)階https://blog.csdn.net/chenlycly/category_11931267.html

1、概述

開源計(jì)算機(jī)視覺庫OpenCV詳解

? ? ? ?在計(jì)算機(jī)視覺項(xiàng)目的開發(fā)中,OpenCV作為最大眾的開源庫,擁有了豐富的常用圖像處理函數(shù)庫,采用C/C++語言編寫,可以運(yùn)行在Linux/Windows/Mac等操作系統(tǒng)上,能夠快速的實(shí)現(xiàn)一些圖像處理和識(shí)別的任務(wù)。此外,OpenCV還提供了java、python、cuda等的使用接口、機(jī)器學(xué)習(xí)的基礎(chǔ)算法調(diào)用,從而使得圖像處理和圖像分析變得更加易于上手,讓開發(fā)人員更多的精力花在算法的設(shè)計(jì)上。

? ? ? ? 本文將主要介紹OpenCV開發(fā)的一些基礎(chǔ)知識(shí)、入門上手的方法與步驟等。


?在這里,給大家重點(diǎn)推薦一下我的兩個(gè)熱門暢銷專欄

專欄1(該專欄訂閱量接近350個(gè),有很強(qiáng)的實(shí)戰(zhàn)參考價(jià)值,廣受好評!)

C++軟件異常排查從入門到精通系列教程(專欄文章列表,歡迎訂閱,持續(xù)更新...)https://blog.csdn.net/chenlycly/article/details/125529931

本專欄根據(jù)近幾年C++軟件異常排查的項(xiàng)目實(shí)踐,系統(tǒng)地總結(jié)了引發(fā)C++軟件異常的常見原因以及排查C++軟件異常的常用思路與方法,詳細(xì)講述了C++軟件的調(diào)試方法與手段,以圖文并茂的方式給出具體的實(shí)戰(zhàn)問題分析實(shí)例,帶領(lǐng)大家逐步掌握C++軟件調(diào)試與異常排查的相關(guān)技術(shù),適合基礎(chǔ)進(jìn)階和想做技術(shù)提升的相關(guān)C++開發(fā)人員!

專欄中的文章都是通過項(xiàng)目實(shí)戰(zhàn)總結(jié)出來的,有很強(qiáng)的實(shí)戰(zhàn)參考價(jià)值!專欄文章還在持續(xù)更新中,預(yù)計(jì)文章篇數(shù)能更新到200篇以上!

專欄2:?

C/C++基礎(chǔ)與進(jìn)階(專欄文章,持續(xù)更新中...)https://blog.csdn.net/chenlycly/category_11931267.html

以多年的開發(fā)實(shí)戰(zhàn)為基礎(chǔ),總結(jié)并講解一些的C/C++基礎(chǔ)與進(jìn)階內(nèi)容,以圖文并茂的方式對相關(guān)知識(shí)點(diǎn)進(jìn)行詳細(xì)地展開與闡述!專欄涉及了C/C++領(lǐng)域的多個(gè)方面的內(nèi)容,同時(shí)給出C/C++及網(wǎng)絡(luò)方面的常見筆試面試題,并詳細(xì)講述Visual Studio常用調(diào)試手段與技巧!


2、OpenCV詳細(xì)介紹

2.1、OpenCV的起源

開源計(jì)算機(jī)視覺庫OpenCV詳解

? ? ? ?OpenCV誕生于Intel研究中心,其目的是為了促進(jìn)CPU密集型應(yīng)用。為了達(dá)到這一目的,Intel啟動(dòng)了多個(gè)項(xiàng)目,包括實(shí)時(shí)光線追蹤和三維顯示墻。一個(gè)在Intel工作的OpenCV作者在訪問一些大學(xué)時(shí),注意到許多頂尖大學(xué)中的研究組(如MIT媒體實(shí)驗(yàn)室)擁有很好的內(nèi)部使用的開放計(jì)算機(jī)視覺庫-- (在學(xué)生們之間互相傳播的代碼),這會(huì)幫助一個(gè)新生從高的起點(diǎn)開始他/她的計(jì)算機(jī)視覺研究。這樣一個(gè)新生可以在以前的基礎(chǔ)上繼續(xù)開始研究,而不用從底層寫基本函數(shù)。

? ? ? ?因此,OpenCV的目的是開發(fā)一個(gè)普遍可用的計(jì)算機(jī)視覺庫。在Intel的性能庫團(tuán)隊(duì)的幫助下 ,OpenCV實(shí)現(xiàn)了一些核心代碼以及算法,并發(fā)給Intel俄羅斯的庫團(tuán)隊(duì)。這就是OpenCV的誕生之地:在與軟件性能庫團(tuán)隊(duì)的合作下,它開始于Intel的研究中心,并在俄羅斯得到實(shí)現(xiàn)和優(yōu)化。

? ? ? ?俄羅斯團(tuán)隊(duì)的主要負(fù)責(zé)人是Vadim Pisarevsky,他負(fù)責(zé)管理項(xiàng)目、寫代碼并優(yōu)化OpenCV的大部分代碼,在OpenCV中很大一部分功勞都屬于他。跟他一起,Victor Eruhimov幫助開發(fā)了早期的架構(gòu),Valery Kuriakin管理俄羅斯實(shí)驗(yàn)室并提供了很大的支持。在開始時(shí),OpenCV有以下三大目標(biāo):

1)為基本的視覺應(yīng)用提供開放且優(yōu)化的源代碼,以促進(jìn)視覺研究的發(fā)展。能有效地避免“閉門造車”。

2)通過提供一個(gè)通用的架構(gòu)來傳播視覺知識(shí),開發(fā)者可以在這個(gè)架構(gòu)上繼續(xù)開展工作,所以代碼應(yīng)該是非常易讀的且可改寫。

3)本庫采用的協(xié)議不要求商業(yè)產(chǎn)品繼續(xù)開放代碼,這使得可移植的、性能被優(yōu)化的代碼可以自由獲取,可以促進(jìn)基于視覺的商業(yè)應(yīng)用的發(fā)展。

? ? ? ?這些目標(biāo)說明了OpenCV的起緣。計(jì)算機(jī)視覺應(yīng)用的發(fā)展會(huì)增加對快速處理器的需求。與單獨(dú)銷售軟件相比,促進(jìn)處理器的升級(jí)會(huì)為Intel帶來更多收入。這也許是為什么這個(gè)開放且免費(fèi)的庫出現(xiàn)在一家硬件生產(chǎn)企業(yè)中,而不是在一家軟件公司中。從某種程度上說,在一家硬件公司里,在軟件方面會(huì)有更多創(chuàng)新的空間。?

2.2、OpenCV開發(fā)語言

開源計(jì)算機(jī)視覺庫OpenCV詳解

? ? ? ?OpenCV的全稱是:Open Source Computer Vision Library。OpenCV是一個(gè)基于BSD許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列C函數(shù)和少量C++類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。

? ? ? ?OpenCV用C++語言編寫,它的主要接口也是C++語言,但是依然保留了大量的C語言接口。該庫也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。這些語言的API接口函數(shù)可以通過在線文檔獲得。如今也提供對于C#,Ch, Ruby的支持。

2.3、OpenCV的應(yīng)用領(lǐng)域

? ? ? ?OpenCV是一個(gè)用于圖像處理、分析、機(jī)器視覺方面的開源函數(shù)庫。?無論你是做科學(xué)研究,還是商業(yè)應(yīng)用,OpenCV都可以作為你理想的工具庫,因?yàn)椋瑢τ谶@兩者,它完全是免費(fèi)的。同時(shí),由于計(jì)算機(jī)視覺與機(jī)器學(xué)習(xí)密不可分,該庫也包含了比較常用的一些機(jī)器學(xué)習(xí)算法?;蛟S,很多人知道圖像識(shí)別、機(jī)器視覺在安防領(lǐng)域有所應(yīng)用。但很少有人知道,在航拍圖片、街道圖片(例如google street view)中,要嚴(yán)重依賴于機(jī)器視覺的攝像頭標(biāo)定、圖像融合等技術(shù)。

開源計(jì)算機(jī)視覺庫OpenCV詳解

? ? ? ?近年來,在入侵檢測、特定目標(biāo)跟蹤、目標(biāo)檢測、人臉檢測、人臉識(shí)別、人臉跟蹤等領(lǐng)域,OpenCV可謂大顯身手,而這些,僅僅是其應(yīng)用的冰山一角。如今,來自世界各地的各大公司、科研機(jī)構(gòu)的研究人員,共同維護(hù)支持著OpenCV的開源庫開發(fā)。這些公司和機(jī)構(gòu)包括:微軟,IBM,索尼、西門子、google、intel、斯坦福、MIT、CMU、劍橋。

? ? ? ?計(jì)算機(jī)視覺市場巨大而且持續(xù)增長,且這方面沒有標(biāo)準(zhǔn)API,如今的計(jì)算機(jī)視覺軟件大概有以下三種:

1)研究代碼(慢,不穩(wěn)定,獨(dú)立并與其他庫不兼容)
2)耗費(fèi)很高的商業(yè)化工具(比如Halcon,?MATLAB+Simulink)
3)依賴硬件的一些特別的解決方案(比如視頻監(jiān)控,制造控制系統(tǒng),醫(yī)療設(shè)備)這是如今的現(xiàn)狀。

而標(biāo)準(zhǔn)的API將簡化計(jì)算機(jī)視覺程序和解決方案的開發(fā)。OpenCV致力于成為這樣的標(biāo)準(zhǔn)API。OpenCV致力于真實(shí)世界的實(shí)時(shí)應(yīng)用,通過優(yōu)化的C代碼的編寫對其執(zhí)行速度帶來了可觀的提升,并且可以通過購買Intel的IPP高性能多媒體函數(shù)庫(Integrated Performance Primitives)得到更快的處理速度(注:OpenCV 2.0版的代碼已顯著優(yōu)化,無需IPP來提升性能,故2.0版不再提供IPP接口)。下圖為OpenCV與當(dāng)前其他主流視覺函數(shù)庫的性能比較。

開源計(jì)算機(jī)視覺庫OpenCV詳解

3、OpenCV模塊劃分

? ? ? ?OpenCV主體分為五個(gè)模塊,其中四個(gè)模塊如下所示:

開源計(jì)算機(jī)視覺庫OpenCV詳解

OpenCV的CV模塊包含基本的圖像處理函數(shù)和高級(jí)的計(jì)算機(jī)視覺算法。ML是機(jī)器學(xué)習(xí)庫,包含一些基于統(tǒng)計(jì)的分類和聚類工具。HighGUI包含圖像和視頻輸入/輸出的函數(shù)。CXCore包含OpenCV的一些基本數(shù)據(jù)結(jié)構(gòu)和相關(guān)函數(shù)。

? ? ? ?目前,我們當(dāng)前討論的是OpenCV3.2.0版本。OpenCV3.0與OpenCV2.0的版本相比,他的主要改動(dòng)如下:

1)大體上保留了OpenCV 2經(jīng)典的C++和Python編程接口風(fēng)格。其中,Python接口大大增強(qiáng),也加入了Python 3.x的支持。一般來說,以前版本的程序只要做少數(shù)修改,就可以使用OpenCV 3了。另外還改善了Java接口,并且加入了MATLAB支持。
2)架構(gòu)調(diào)整。圖片、視頻編解碼從highgui模塊分離出來,組成了imgcodecs和videoio。原先的OpenCL模塊ocl事實(shí)上與其 它模塊融為一體,而CUDA加速模塊gpu分解成了數(shù)個(gè)以cuda開頭的模塊。此外,除了官方支持的OpenCV代碼,還有一些自發(fā)貢獻(xiàn)的內(nèi)容、不穩(wěn)定的 內(nèi)容,或者版權(quán)尚存爭議的內(nèi)容,都放到了新的倉庫opencv_contrib中。
3)更多新算法。新版本包括了TLD、魚眼鏡頭模型等全新算法,還包括了一些更高層次可以直接拿來用的高級(jí)封裝,比如汽車檢測等。
4)引入T-API,使OpenCL加速更容易。目前可以參考OpenCV源代碼中T-API的范例??梢园l(fā)現(xiàn),開啟和關(guān)閉OpenCL加速,只需要一個(gè)語句就夠了。這也就是為什么ocl模塊會(huì)消失了吧。
5)更多指令集優(yōu)化。除了之前為Intel CPU做的優(yōu)化以外,OpenCV 3還容納了ARM平臺(tái)NEON指令集的支持。通過英特爾的幫助,OpenCV 3對x86和x64平臺(tái)默認(rèn)使用IPP。OpenCV3.0中部分函數(shù)得到加速的示意圖如下:

開源計(jì)算機(jī)視覺庫OpenCV詳解

4、OpenCV源碼文件結(jié)構(gòu)

開源計(jì)算機(jī)視覺庫OpenCV詳解

? ? ? ? 開源庫OpenCV的github地址為:https://github.com/opencv,下文以O(shè)penCV3.0版本展開講述。

4.1、根目錄介紹

? ? ? ? OpenCV3.0的sources文件結(jié)構(gòu)如下:

開源計(jì)算機(jī)視覺庫OpenCV詳解

1)3rdparty/,包含第三方的庫,比如視頻解碼用的 ffmpeg,jpg、png、tiff等圖片的開源解碼庫。
2)apps/,包含進(jìn)行 haar 分類器訓(xùn)練的工具,opencv 進(jìn)行人臉檢測便是基于 haar 分類器。如果你想檢測人臉以外的圖片,千萬不要錯(cuò)過這幾個(gè)工具。
3)cmake/,包含生成工程項(xiàng)目時(shí) cmake 的依賴文件,用于智能搜索第三方庫,普通開發(fā)者不需要關(guān)心這個(gè)文件夾的內(nèi)容。
4)data/,包含 opencv 庫以及范例中用到的資源文件,haar 物體檢測的分類器位于haarcascades子文件中。
5)doc/,包含生成文檔所需的源文件以及輔助腳本。
6)include/,包含入口頭文件。opencv 子文件夾中是 C 語言風(fēng)格的API,也就是《Learning OpenCV (第一版)》中描述的API函數(shù),官方將逐漸淘汰 C 風(fēng)格函數(shù),因此我不推薦大家使用該文件夾中的頭文件。opencv2 子文件中只有一個(gè) opencv.hpp 文件,這是 cv2 以及 cv3 推薦使用的頭文件。
7)modules/,包含核心代碼,opencv 真正的代碼都在這個(gè)文件夾中。opencv 從2.0開始以模塊的方式組織各種功能,近兩年模塊的數(shù)量增長得很快,后面我會(huì)依次介紹每個(gè)模塊的作用。
8)platforms/,包含交叉編譯所需的工具鏈以及額外的代碼,交叉編譯指的是在一個(gè)操作系統(tǒng)中編譯供另一個(gè)系統(tǒng)使用的文件。
9)samples/,范例文件夾。

4.2、常用模塊介紹

? ? ? ? modules目錄中則包含了OpenCV的主要功能模塊,包含了如下的多個(gè)模塊:

開源計(jì)算機(jī)視覺庫OpenCV詳解

1)androidcamera/,僅用于android平臺(tái),使得可以通過與其他平臺(tái)相同的接口來控制android設(shè)備的相機(jī)。
2)core/,核心功能模塊,定義了基本的數(shù)據(jù)結(jié)構(gòu),包括最重要的 Mat 類、XML 讀寫、opengl三維渲染等。
3)imgproc/,全稱為 image processing,即圖像處理。包括圖像濾波、集合圖像變換、直方圖計(jì)算、形狀描述子等。圖像處理是計(jì)算機(jī)視覺的重要工具。
4)imgcodec/,負(fù)責(zé)各種格式的圖片的讀寫,這個(gè)模塊是從以前的 highgui 中剝離的。
5)highgui/,高級(jí)圖形界面及與 QT 框架的整合。
6)video/,視頻分析模塊。包括背景提取、光流跟蹤、卡爾曼濾波等,做視頻監(jiān)控的讀者會(huì)經(jīng)常使用這個(gè)模塊。
7)videoio/,負(fù)責(zé)視頻文件的讀寫,也包括攝像頭、Kinect 等的輸入。
8)calib3d/,相機(jī)標(biāo)定以及三維重建。相機(jī)標(biāo)定用于去除相機(jī)自身缺陷導(dǎo)致的畫面形變,還原真實(shí)的場景,確保計(jì)算的準(zhǔn)確性。三維重建通常用在雙目視覺(立體視覺),即兩個(gè)標(biāo)定后的攝像頭觀察同一個(gè)場景,通過計(jì)算兩幅畫面中的相關(guān)性來估算像素的深度。
9)features2d/,包含 2D 特征值檢測的框架。包含各種特征值檢測器及描述子,例如 FAST、MSER、OBRB、BRISK等。各類特征值擁有統(tǒng)一的算法接口,因此在不影響程序邏輯的情況下可以進(jìn)行替換。
10)objdetect/,物體檢測模塊。包括haar分類器、SVM檢測器及文字檢測。
11)ml/,全稱為 Machine Learning,即機(jī)器學(xué)習(xí)。包括統(tǒng)計(jì)模型、K最近鄰、支持向量機(jī)、決策樹、神經(jīng)網(wǎng)絡(luò)等經(jīng)典的機(jī)器學(xué)習(xí)算法。
12)flann/,用于在多維空間內(nèi)聚類及搜索的近似算法,做圖像檢索的讀者對它不會(huì)陌生。
13)photo/,計(jì)算攝影學(xué)。包括圖像修補(bǔ)、去噪、HDR成像、非真實(shí)感渲染等。如果讀者想實(shí)現(xiàn)Photoshop的高級(jí)功能,那么這個(gè)模塊必不可少。
14)stitching/,圖像拼接,可用于制作全景圖。
15)nonfree/,受專利保護(hù)的算法。包含SIFT和SURF,從功能上來說這兩個(gè)算法屬于features2d模塊的,但由于它們都是受專利保護(hù)的,想在項(xiàng)目中可能需要專利方的許可。
16)shape/,形狀匹配算法模塊。用于描述形狀、比較形狀。
17)softcascade/,另一種物體檢測算法,Soft Cascade 分類器。包含檢測模塊和訓(xùn)練模塊。
18)superres/,全稱為 Super Resolution,用于增強(qiáng)圖像的分辨率。
19)videostab/,全稱為 Video Stabilization,用于解決相機(jī)移動(dòng)時(shí)拍攝的視頻不夠穩(wěn)定的問題。
20)viz/,三維可視化模塊。可以認(rèn)為這個(gè)模塊實(shí)現(xiàn)了一個(gè)簡單的三維可視化引擎,有各種UI控件和鍵盤、鼠標(biāo)交互方式。底層實(shí)現(xiàn)基于 VTK 這個(gè)第三方庫。

4.3、CUDA加速模塊

? ? ? ? CUDA 是顯卡制造商 NVIDIA 推出的通用計(jì)算語言,在cv3中有大量的模塊已經(jīng)被移植到了CUDA 語言:

1)cuda/,CUDA-加速的計(jì)算機(jī)視覺算法,包括數(shù)據(jù)結(jié)構(gòu) cuda::GpuMat、 基于cuda的相機(jī)標(biāo)定及三維重建等。
2)cudaarithm/,CUDA-加速的矩陣運(yùn)算模塊。
3)cudabgsegm/,CUDA-加速的背景分割模塊,通常用于視頻監(jiān)控。
4)cudacodec/,CUDA-加速的視頻編碼與解碼。
5)cudafeatures2d/,CUDA-加速的特征檢測與描述模塊,與features2d/模塊功能類似。
6)cudafilters/,CUDA-加速的圖像濾波。
7)cudaimgproc/,CUDA-加速的圖像處理算法,包含直方圖計(jì)算、霍夫變換等。
8)cudaoptflow/,CUDA-加速的光流檢測算法。
9)cudastereo/,CUDA-加速的立體視覺匹配算法。
10)cudawarping/,實(shí)現(xiàn)了 CUDA-加速的快速圖像變換,包括透視變換、旋轉(zhuǎn)、改變尺寸等。
11)cudaev/,實(shí)現(xiàn) CUDA 版本的核心功能,類似 core/ 模塊中的基礎(chǔ)算法。

5、OpenCV配置以及Visual Studio使用OpenCV

? ? ? ? 了解了OpenCV的數(shù)據(jù)結(jié)構(gòu)和功能后,下面介紹OpenCV的配置,win7 64 + vs2013 + OpenCV3.0步驟。

1)下載安裝opencv 3.0。下載地址:http://opencv.org/downloads.html。
2)配置環(huán)境變量:計(jì)算機(jī)屬性->高級(jí)系統(tǒng)設(shè)置->環(huán)境變量->Path->變量值:

開源計(jì)算機(jī)視覺庫OpenCV詳解

?

3)配置VS2013。首先打開VS2013建立一個(gè)Win32控制臺(tái)項(xiàng)目。然后,在“項(xiàng)目->工程屬性->VC++目錄”中,加入包含目錄
..\opencv\build\include; ..\opencv\build\include\opencv;?
..\opencv\build\include\opencv2。(..代表OpenCV安裝的文件夾目錄)

開源計(jì)算機(jī)視覺庫OpenCV詳解

?

加入庫目錄..\opencv\build\x64\vc12\lib?!绊?xiàng)目->工程屬性->鏈接器->輸入->附加依賴”中添加附加依賴項(xiàng):
opencv_ts300d.lib;opencv_world300d.lib:

開源計(jì)算機(jī)視覺庫OpenCV詳解

配置完成后,就可以在vs2013中使用opencv3.0中的函數(shù)了。

? ? ? ?經(jīng)過以上的基礎(chǔ)知識(shí)介紹后,就可以進(jìn)行入門的實(shí)踐了。在上面配置完成的工程中,來顯示一幅圖片,驗(yàn)證一下是否成功。在解決方案資源管理器中,打開源文件main.cpp(沒有可以自己創(chuàng)6、建),添加以下代碼

#include<opencv2\opencv.hpp>
using namespace cv;
int main()
{
    Mat src = imread("lena.jpg"); //圖片必須添加到工程目錄下
    imshow("src ", src);
    waitKey();
}

然后編譯代碼執(zhí)行程序,效果如下:

開源計(jì)算機(jī)視覺庫OpenCV詳解

上圖是視頻圖像處理領(lǐng)域最經(jīng)典的Lena圖片,做視頻圖像處理的朋友肯定都知道這個(gè)漂亮的小姐姐是誰!

6、關(guān)于Lena圖片

開源計(jì)算機(jī)視覺庫OpenCV詳解

? ? ? ?圖片中的女神名叫萊娜·瑟德貝里(瑞典文:Lena Soderberg),1951 年 3 月 31 日出生于瑞典,在 1972 年 11 月期的《花花公子》雜志中,她成為了當(dāng)期的玩伴女郎(女模特),拍攝了一些照片。?

? ? ? ?在計(jì)算機(jī)圖像界,Lena圖是最受歡迎、使用最多的測試圖,在圖像處理領(lǐng)域,Lena 成為無人不知、無人不曉的女神。很多圖像處理教程和會(huì)議論文都是用Lena圖作為測試驗(yàn)證圖,因此大多數(shù)圖像處理學(xué)習(xí)者都是從這張圖入門的,在網(wǎng)上也能搜到各種被處理過的相關(guān)圖片:

開源計(jì)算機(jī)視覺庫OpenCV詳解

因?yàn)檫@張圖片,Lena 成為了計(jì)算機(jī)領(lǐng)域最著名的非專業(yè)女性,也是很多 CV 程序員們口口相傳的女神。

? ? ? ?在1973年6、7月間,美國南加州大學(xué)信號(hào)圖像處理研究所教授Alexander Sawchuk正在與一名研究生以及SIPI研究室的經(jīng)理正在匆忙地尋找一副高質(zhì)量的圖片用于大學(xué)的會(huì)議論文。他們不喜歡1960年代早期所使用的電視標(biāo)準(zhǔn)所用的普通檢驗(yàn)圖,他們希望找到一幅能夠得到很好動(dòng)態(tài)范圍的有光澤的圖像,并且希望能有一幅人臉圖像。正在那時(shí),碰巧有人走了進(jìn)來并且?guī)е环罱霭娴摹痘ɑü印?。雜志上的Lena照片(Lena Soderberg,萊娜·瑟德貝里,1972年在在芝加哥當(dāng)模特的瑞典人,是《花花公子》當(dāng)年的十一月小姐)讓教授眼前一亮。教授便將這張圖掃描了下來,截取圖片上半身的一部分(她的臉部與裸露的肩部)作為了他研究使用的樣例圖像。從此,這幅512*512的經(jīng)典Lena圖片就誕生了。

? ? ? ?萊娜的這張照片在無意間竟然一炮而紅!戴著柔軟的羽毛帽子,站在一面全身鏡前,回頭凝視著觀眾,她裸露的右肩,眼睛在招手,嘴角掛著蒙娜麗莎式的微笑。自《蒙娜麗莎》以來,沒有哪幅圖像被研究得如此深入。該圖在數(shù)字視頻處理學(xué)習(xí)與研究中頗為知名,常被用作數(shù)字視頻處理各種實(shí)驗(yàn)(例如數(shù)據(jù)壓縮和降噪)及科學(xué)出版物的例圖。萊娜圖在圖像壓縮算法是最廣泛應(yīng)用的標(biāo)準(zhǔn)測試圖—她的臉部與裸露的肩部已經(jīng)變成了事實(shí)上的工業(yè)標(biāo)準(zhǔn)。?

? ? ? ?從事影像數(shù)據(jù)的壓縮、運(yùn)算、傳輸、 解壓縮等處理時(shí),都經(jīng)常采用這張圖像來當(dāng)測試樣本。?這張圖片含有豐富的頻段,包括處于低頻的光滑皮膚和處于高頻的羽毛,很適合做為測試圖片。而人眼對于人臉的細(xì)節(jié)差別感受也遠(yuǎn)比一般的景物更為明顯。

? ? ? ?戴維·C·蒙森(David C.Munson),IEEE圖像處理匯刊(IEEE Transactions on Image Processing)的主編, 在1996年1月引用了兩個(gè)原因來說明萊娜圖在科研領(lǐng)域流行的原因:

1)首先,該圖片包含了平整的區(qū)塊、清晰細(xì)致的紋路、漸漸變化的光影、顏色的深淺層次等細(xì)節(jié),這些都有益于測試各種不同的圖像處理算法。它是一幅很好的測試照片!
2)其次,由于這是一個(gè)非常有魅力女人的照片。因此,多數(shù)由男性組成圖像處理研究行業(yè)傾向于使用他們認(rèn)為很有吸引力的圖片,也并不令人驚奇。

? ? ? ?在 1997 年的第五十屆 IS&T(圖像科學(xué)與技術(shù))大會(huì)上,Lena 被邀請為貴賓出席,在該會(huì)議上,她成了最受歡迎的人物,有人甚至把她稱為 “The First Lady of Internet”(互聯(lián)網(wǎng)第一夫人)。會(huì)議上,她做了自己的簡要發(fā)言,并被無數(shù)的粉絲索取簽名及拍照。

? ? ? ?以現(xiàn)在的標(biāo)準(zhǔn)來看,Lena圖片的分辨率比較低,隨機(jī)計(jì)算機(jī)技術(shù)的發(fā)展,后面可能不再適合作為未來圖像處理的測試圖片。也許終有一天,它會(huì)被計(jì)算機(jī)圖像學(xué)丟棄。但不可否認(rèn)的是,它曾經(jīng)在計(jì)算機(jī)圖像領(lǐng)域做出過偉大的貢獻(xiàn)。

7、OpenCV和OpenGL的區(qū)別

開源計(jì)算機(jī)視覺庫OpenCV詳解

? ? ? ?OpenCV和OpenGL都是用來處理圖像和視頻的,但兩者有很大的區(qū)別。?

? ? ? ?OpenCV是一個(gè)開源計(jì)算機(jī)視覺庫,用于圖像和視頻處理、分析和識(shí)別。它提供了各種算法和工具,如圖像處理、特征檢測、目標(biāo)跟蹤、人臉識(shí)別等,可以在計(jì)算機(jī)視覺應(yīng)用中使用。

? ? ? ?OpenGL是一個(gè)開源圖形庫,用于創(chuàng)建3D圖形和動(dòng)畫。它提供了各種功能和工具,如渲染、光照、紋理映射等,它可以幫助開發(fā)人員實(shí)現(xiàn)高效的圖形渲染和動(dòng)畫效果,可以與許多編程語言搭配使用,如C++、Java等。它應(yīng)用于游戲、虛擬現(xiàn)實(shí)、建筑等多個(gè)領(lǐng)域。此外,OpenGL還提供了一個(gè)專用于嵌入式領(lǐng)域的OpenGL ES (OpenGL for Embedded Systems), 是 OpenGL 三維圖形 API 的子集,主要針對手機(jī)、PAD和游戲主機(jī)等嵌入式設(shè)備而設(shè)計(jì)。

? ? ? ?雖然OpenCV和OpenGL都可以用于圖像處理和計(jì)算機(jī)視覺應(yīng)用,但它們的定位和應(yīng)用場景不同。OpenCV主要用于圖像和視頻的處理分析,而OpenGL則主要用于3D圖形和動(dòng)畫的創(chuàng)建與渲染。

8、OpenCV與YOLO的區(qū)別

開源計(jì)算機(jī)視覺庫OpenCV詳解

? ? ? ?OpenCV和YOLO都是計(jì)算機(jī)視覺領(lǐng)域的工具庫,但它們的作用和使用方式有所不同。

? ? ? ?OpenCV是一個(gè)開源的計(jì)算機(jī)視覺庫,提供了各種各樣的圖像處理和計(jì)算機(jī)視覺算法,如圖像讀取、圖像處理、圖像濾波、圖像分割、邊緣檢測、特征提取、目標(biāo)檢測與跟蹤、人臉識(shí)別等。OpenCV可以用于圖像處理、視頻處理、機(jī)器人視覺、自動(dòng)駕駛等多個(gè)領(lǐng)域。

? ? ? ?YOLO(You Only Look Once)是一個(gè)基于深度學(xué)習(xí)的開源目標(biāo)檢測算法。相比傳統(tǒng)的目標(biāo)檢測算法,YOLO可以實(shí)現(xiàn)更快的檢測速度,在保持較高的準(zhǔn)確率的同時(shí),可以實(shí)現(xiàn)實(shí)時(shí)檢測。YOLO采用單個(gè)神經(jīng)網(wǎng)絡(luò)來同時(shí)預(yù)測圖像中所有物體的類別和位置,可以處理多種尺度和多個(gè)物體。YOLO可以用于智能監(jiān)控、自動(dòng)駕駛、機(jī)器人視覺等領(lǐng)域。

? ? ? ?因此,OpenCV和YOLO都是計(jì)算機(jī)視覺領(lǐng)域的工具,它們的應(yīng)用場景和目標(biāo)有所不同。OpenCV更加通用,可以用于各種圖像處理和計(jì)算機(jī)視覺應(yīng)用,而YOLO則更加專注于目標(biāo)檢測領(lǐng)域,可以實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測,檢測效率要高一些。

9、OpenGL與DirectX的區(qū)別

開源計(jì)算機(jī)視覺庫OpenCV詳解

? ? ? ? 說到OpenCV和OpenGL的區(qū)別,我們也來順便說說OpenGL與DirectX的區(qū)別。

? ? ? ? OpenGL和DirectX都是用于渲染3D圖形的API,但它們有較大的區(qū)別,如下:

1)平臺(tái)支持:OpenGL是跨平臺(tái)的API,可以在幾乎任何操作系統(tǒng)上運(yùn)行,而DirectX只能在Windows操作系統(tǒng)上運(yùn)行。

2)API設(shè)計(jì)理念:OpenGL的設(shè)計(jì)理念是簡單易用,允許開發(fā)人員自由選擇和使用不同的實(shí)現(xiàn)。而DirectX更注重提供完整的解決方案,包含不同的組件,如Direct3D、Direct2D、DirectCompute等。

3)軟硬件實(shí)現(xiàn):OpenGL可以使用多種實(shí)現(xiàn)方式,包括軟件實(shí)現(xiàn)和硬件加速實(shí)現(xiàn)。而DirectX只能使用硬件加速實(shí)現(xiàn),因?yàn)樗轻槍indows操作系統(tǒng)和硬件設(shè)計(jì)的。

4)開發(fā)語言:OpenGL是用C語言編寫的API,對于初學(xué)者和非專業(yè)開發(fā)人員來說,學(xué)習(xí)和使用OpenGL比較困難。而DirectX是用C++編寫的API,更易于學(xué)習(xí)和使用。

5)社區(qū)支持:OpenGL有一個(gè)活躍的社區(qū),提供了大量的教程、資料和開源項(xiàng)目,使開發(fā)人員更容易入門。而DirectX的社區(qū)相對較小,因?yàn)樗菍閃indows平臺(tái)設(shè)計(jì)的。

? ? ? ?總的來說,OpenGL和DirectX都有各自的優(yōu)缺點(diǎn),在選擇使用哪個(gè)API時(shí),需要考慮到項(xiàng)目需求、開發(fā)成本、平臺(tái)支持等因素。以多媒體SDL庫為例,我們經(jīng)常使用該庫在軟件中繪制視頻圖像,當(dāng)用在Windows平臺(tái)上時(shí)SDL內(nèi)部使用DirectX繪圖,當(dāng)用在Linux平臺(tái)上時(shí)SDL內(nèi)部則使用OpenGL繪圖。文章來源地址http://www.zghlxwxcb.cn/news/detail-497055.html

到了這里,關(guān)于開源計(jì)算機(jī)視覺庫OpenCV詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 計(jì)算機(jī)視覺 3D點(diǎn)云極簡概述

    計(jì)算機(jī)視覺 3D點(diǎn)云極簡概述

    ????????點(diǎn)云是表示 3D 坐標(biāo)系中的數(shù)字 3D 物理對象或空間的點(diǎn)數(shù)據(jù)庫。它由數(shù)百萬或者更多個(gè)單獨(dú)的測量點(diǎn)組成,具有 x、y 和 z 坐標(biāo)。3D點(diǎn)云是物體的高精度數(shù)字記錄。點(diǎn)云用于生成用于 3D 建模的 3D 網(wǎng)格和其他模型。包括醫(yī)學(xué)成像、3D 打印、制造、建筑、3D 游戲和虛擬

    2024年02月13日
    瀏覽(20)
  • 《計(jì)算機(jī)視覺度量:從特征描述到深度學(xué)習(xí)》--工業(yè)視覺深度學(xué)習(xí)方法概述

    《計(jì)算機(jī)視覺度量:從特征描述到深度學(xué)習(xí)》--工業(yè)視覺深度學(xué)習(xí)方法概述

    博主更新了幾期關(guān)于深度學(xué)習(xí)在工業(yè)場景的應(yīng)用文章,本次全面闡述一下深度學(xué)習(xí)方法在整個(gè)應(yīng)用場景的方法和應(yīng)用的局限特性: 分類:分類作為深度學(xué)習(xí)基本的研究方向,這幾年的學(xué)術(shù)研究取得了重大突破?;驹砣缦聢D 原理分析:采用圖片的每個(gè)像素值,通過深度學(xué)

    2024年02月20日
    瀏覽(26)
  • 【計(jì)算機(jī)視覺】基于OpenCV計(jì)算機(jī)視覺的攝像頭測距技術(shù)設(shè)計(jì)與實(shí)現(xiàn)

    【計(jì)算機(jī)視覺】基于OpenCV計(jì)算機(jī)視覺的攝像頭測距技術(shù)設(shè)計(jì)與實(shí)現(xiàn)

    在當(dāng)今技術(shù)日益進(jìn)步的時(shí)代,計(jì)算機(jī)視覺已成為我們生活中不可或缺的一部分。從智能監(jiān)控到虛擬現(xiàn)實(shí),計(jì)算機(jī)視覺技術(shù)的應(yīng)用范圍日益廣泛。在這篇博客中,我們將探索一個(gè)特別實(shí)用的計(jì)算機(jī)視覺案例:使用OpenCV實(shí)現(xiàn)攝像頭測距。這一技術(shù)不僅對專業(yè)人士有用,也為編程愛

    2024年02月04日
    瀏覽(26)
  • 計(jì)算機(jī)視覺(OpenCV+TensorFlow)

    計(jì)算機(jī)視覺(OpenCV+TensorFlow)

    本系列文章是OpenCV系列文章的第三篇,仍然跟隨上篇內(nèi)容主要聚焦于圖像的一些操作 在通常情況下我們使用大小恒定的圖像。但在某些情況下,我們需要使用不同分辨率的同幅圖像,例如,在搜索圖像中的某些內(nèi)容比如臉部信息時(shí),并不確定該內(nèi)容在圖像中占據(jù)的大小。這種

    2024年02月05日
    瀏覽(31)
  • 計(jì)算機(jī)視覺:OpenCV相機(jī)標(biāo)定

    計(jì)算機(jī)視覺:OpenCV相機(jī)標(biāo)定

    針孔照相機(jī)模型是一種經(jīng)典的相機(jī)模型,它將相機(jī)視為一個(gè)針孔,將場景中的點(diǎn)投影到成像平面上。在這個(gè)模型中,相機(jī)的 內(nèi)參和外參 描述了相機(jī)的幾何形狀和相機(jī)的姿態(tài)。 相機(jī)的 內(nèi)參矩陣 描述了相機(jī)的內(nèi)部幾何形狀,包括相機(jī)的焦距、像素尺寸和像素坐標(biāo)原點(diǎn)。相機(jī)的

    2024年01月19日
    瀏覽(24)
  • 【opencv】計(jì)算機(jī)視覺基礎(chǔ)知識(shí)

    【opencv】計(jì)算機(jī)視覺基礎(chǔ)知識(shí)

    目錄 前言 1、什么是計(jì)算機(jī)視覺 2、圖片處理基礎(chǔ)操作 2.1 圖片處理:讀入圖像 2.2 圖片處理:顯示圖像 2.3?圖片處理:圖像保存 3、圖像處理入門基礎(chǔ) 3.1 圖像成像原理介紹 3.2 圖像分類 3.2.1 二值圖像 3.2.2灰度圖像 3.2.3彩色圖像(RGB) 4、像素處理操作 4.1 讀取像素 4.2 修改像素

    2024年02月04日
    瀏覽(50)
  • 【計(jì)算機(jī)視覺】---OpenCV實(shí)現(xiàn)物體追蹤

    OpenCV中的物體追蹤算法基于視覺目標(biāo)跟蹤的原理。物體追蹤的目標(biāo)是在連續(xù)的圖像序列中定位和跟蹤特定物體的位置。 在物體追蹤中,我們需要對目標(biāo)對象進(jìn)行表示。通常使用邊界框(bounding box)來表示目標(biāo)的位置和大小。邊界框是一個(gè)矩形區(qū)域,由左上角的坐標(biāo)(x,y)和

    2024年02月08日
    瀏覽(22)
  • 【opencv】計(jì)算機(jī)視覺:實(shí)時(shí)目標(biāo)追蹤

    【opencv】計(jì)算機(jī)視覺:實(shí)時(shí)目標(biāo)追蹤

    目錄 前言 解析 深入探究 前言 目標(biāo)追蹤技術(shù)對于民生、社會(huì)的發(fā)展以及國家軍事能力的壯大都具有重要的意義。它不僅僅可以應(yīng)用到體育賽事當(dāng)中目標(biāo)的捕捉,還可以應(yīng)用到交通上,比如實(shí)時(shí)監(jiān)測車輛是否超速等!對于國家的軍事也具有一定的意義,比如說導(dǎo)彈識(shí)別目標(biāo)等

    2024年02月05日
    瀏覽(20)
  • 【OpenCV】OpenCV:計(jì)算機(jī)視覺的強(qiáng)大工具庫

    【OpenCV】OpenCV:計(jì)算機(jī)視覺的強(qiáng)大工具庫

    摘要 ??OpenCV是一個(gè)廣泛應(yīng)用于計(jì)算機(jī)視覺領(lǐng)域的開源工具庫,為開發(fā)者提供了豐富的圖像處理和計(jì)算機(jī)視覺算法。本文將介紹OpenCV的功能和應(yīng)用領(lǐng)域,并探討它在實(shí)踐中的重要性和前景。 ??作者簡介: 熱愛跑步的恒川 ,致力于C/C++、Java、Python等多編程語言,熱愛跑步,

    2024年02月03日
    瀏覽(18)
  • OpenCV第 1 課 計(jì)算機(jī)視覺和 OpenCV 介紹

    OpenCV第 1 課 計(jì)算機(jī)視覺和 OpenCV 介紹

    ??我們?nèi)祟惪梢酝ㄟ^眼睛看到五顏六色的世界,是因?yàn)槿搜鄣囊曈X細(xì)胞中存在分別對紅、綠、藍(lán)敏感的 3 種細(xì)胞。其中的光感色素根據(jù)光線的不同進(jìn)行不同比例的分解,從而讓我們識(shí)別到各種顏色。 ??對人工智能而言,學(xué)會(huì)“ 看 ”也是非常關(guān)鍵的一步。那么機(jī)器人是如

    2024年01月24日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包