錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠(chéng)服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁(yè)
topFlag3 收藏本站
 
maojin003 首 頁(yè) 公司介紹 服務(wù)項(xiàng)目 服務(wù)報(bào)價(jià) 維修流程 IT外包服務(wù) 服務(wù)器維護(hù) 技術(shù)文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠(chéng)服務(wù)技術(shù)文章
開源計(jì)算機(jī)視覺庫(kù)OpenCV詳解

作者: 佚名  日期:2023-07-14 20:44:58   來(lái)源: 本站整理

1、概述

       在計(jì)算機(jī)視覺項(xiàng)目的開發(fā)中,OpenCV作為最大眾的開源庫(kù),擁有了豐富的常用圖像處理函數(shù)庫(kù),采用C/C++語(yǔ)言編寫,

可以運(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í)、入門上手的方法與步驟等。

2、OpenCV詳細(xì)介紹

2.1、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ī)視覺庫(kù)-- (在學(xué)生們之間互相傳播的代碼),這會(huì)幫助一

個(gè)新生從高的起點(diǎn)開始他/她的計(jì)算機(jī)視覺研究。這樣一個(gè)新生可以在以前的基礎(chǔ)上繼續(xù)開始研究,而不用從底層

寫基本函數(shù)。

       因此,OpenCV的目的是開發(fā)一個(gè)普遍可用的計(jì)算機(jī)視覺庫(kù)。在Intel的性能庫(kù)團(tuán)隊(duì)的幫助下 ,OpenCV實(shí)現(xiàn)

了一些核心代碼以及算法,并發(fā)給Intel俄羅斯的庫(kù)團(tuán)隊(duì)。這就是OpenCV的誕生之地:在與軟件性能庫(kù)團(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 Kuria

kin管理俄羅斯實(shí)驗(yàn)室并提供了很大的支持。在開始時(shí),OpenCV有以下三大目標(biāo):

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

2)通過提供一個(gè)通用的架構(gòu)來(lái)傳播視覺知識(shí),開發(fā)者可以在這個(gè)架構(gòu)上繼續(xù)開展工作,所以代碼

應(yīng)該是非常易讀的且可改寫。

3)本庫(kù)采用的協(xié)議不要求商業(yè)產(chǎn)品繼續(xù)開放代碼,這使得可移植的、性能被優(yōu)化的代碼可以自由獲

取,可以促進(jìn)基于視覺的商業(yè)應(yīng)用的發(fā)展。

       這些目標(biāo)說(shuō)明了OpenCV的起緣。計(jì)算機(jī)視覺應(yīng)用的發(fā)展會(huì)增加對(duì)快速處理器的需求。與單獨(dú)銷售軟

件相比,促進(jìn)處理器的升級(jí)會(huì)為Intel帶來(lái)更多收入。這也許是為什么這個(gè)開放且免費(fèi)的庫(kù)出現(xiàn)在一家硬件生產(chǎn)企業(yè)中,

而不是在一家軟件公司中。從某種程度上說(shuō),在一家硬件公司里,在軟件方面會(huì)有更多創(chuàng)新的空間。 

2.2、OpenCV開發(fā)語(yǔ)言

       OpenCV的全稱是:Open Source Computer Vision Library。OpenCV是一個(gè)基于BSD許可(開源)發(fā)行的

跨平臺(tái)計(jì)算機(jī)視覺庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由

一系列C函數(shù)和少量C++類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)

視覺方面的很多通用算法。

       OpenCV用C++語(yǔ)言編寫,它的主要接口也是C++語(yǔ)言,但是依然保留了大量的C語(yǔ)言接口。該庫(kù)也有大量的

Python, Java and MATLAB/OCTAVE (版本2.5)的接口。這些語(yǔ)言的API接口函數(shù)可以通過在線文檔獲得。如今

也提供對(duì)于C#,Ch, Ruby的支持。

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

       OpenCV是一個(gè)用于圖像處理、分析、機(jī)器視覺方面的開源函數(shù)庫(kù)。 無(wú)論你是做科學(xué)研究,還是商業(yè)應(yīng)用,

OpenCV都可以作為你理想的工具庫(kù),因?yàn),?duì)于這兩者,它完全是免費(fèi)的。同時(shí),由于計(jì)算機(jī)視覺與機(jī)器學(xué)

習(xí)密不可分,該庫(kù)也包含了比較常用的一些機(jī)器學(xué)習(xí)算法。或許,很多人知道圖像識(shí)別、機(jī)器視覺在安防領(lǐng)域

有所應(yīng)用。但很少有人知道,在航拍圖片、街道圖片(例如google street view)中,要嚴(yán)重依賴于機(jī)器視覺的

攝像頭標(biāo)定、圖像融合等技術(shù)。

       近年來(lái),在入侵檢測(cè)、特定目標(biāo)跟蹤、目標(biāo)檢測(cè)、人臉檢測(cè)、人臉識(shí)別、人臉跟蹤等領(lǐng)域,OpenCV可謂大顯

身手,而這些,僅僅是其應(yīng)用的冰山一角。如今,來(lái)自世界各地的各大公司、科研機(jī)構(gòu)的研究人員,共同維護(hù)支

持著OpenCV的開源庫(kù)開發(fā)。這些公司和機(jī)構(gòu)包括:微軟,IBM,索尼、西門子、google、intel、斯坦福、MIT、CMU、劍橋。

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

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

而標(biāo)準(zhǔn)的API將簡(jiǎn)化計(jì)算機(jī)視覺程序和解決方案的開發(fā)。OpenCV致力于成為這樣的標(biāo)準(zhǔn)API。OpenCV致力于真實(shí)

世界的實(shí)時(shí)應(yīng)用,通過優(yōu)化的C代碼的編寫對(duì)其執(zhí)行速度帶來(lái)了可觀的提升,并且可以通過購(gòu)買Intel的IPP高性能

多媒體函數(shù)庫(kù)(Integrated Performance Primitives)得到更快的處理速度(注:OpenCV 2.0版的代碼已顯著優(yōu)

化,無(wú)需IPP來(lái)提升性能,故2.0版不再提供IPP接口)。下圖為OpenCV與當(dāng)前其他主流視覺函數(shù)庫(kù)的性能比較。

3、OpenCV模塊劃分

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

OpenCV的CV模塊包含基本的圖像處理函數(shù)和高級(jí)的計(jì)算機(jī)視覺算法。ML是機(jī)器學(xué)習(xí)庫(kù),包含一些基于統(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的支持。一般來(lái)說(shuō),以前版本的程序只要做少數(shù)修改,就可以使用OpenCV 3了。另

外還改善了Java接口,并且加入了MATLAB支持。
2)架構(gòu)調(diào)整。圖片、視頻編解碼從highgui模塊分離出來(lái),組成了imgcodecs和videoio。原先的OpenCL

模塊ocl事實(shí)上與其 它模塊融為一體,而CUDA加速模塊gpu分解成了數(shù)個(gè)以cuda開頭的模塊。此外,

除了官方支持的OpenCV代碼,還有一些自發(fā)貢獻(xiàn)的內(nèi)容、不穩(wěn)定的 內(nèi)容,或者版權(quán)尚存爭(zhēng)議的內(nèi)容,

都放到了新的倉(cāng)庫(kù)opencv_contrib中。
3)更多新算法。新版本包括了TLD、魚眼鏡頭模型等全新算法,還包括了一些更高層次可以直接拿來(lái)

用的高級(jí)封裝,比如汽車檢測(cè)等。
4)引入T-API,使OpenCL加速更容易。目前可以參考OpenCV源代碼中T-API的范例。可以發(fā)現(xiàn),開

啟和關(guān)閉OpenCL加速,只需要一個(gè)語(yǔ)句就夠了。這也就是為什么ocl模塊會(huì)消失了吧。
5)更多指令集優(yōu)化。除了之前為Intel CPU做的優(yōu)化以外,OpenCV 3還容納了ARM平臺(tái)NEON指令集的支持。

通過英特爾的幫助,OpenCV 3對(duì)x86和x64平臺(tái)默認(rèn)使用IPP。OpenCV3.0中部分函數(shù)得到加速的示意圖如下:

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

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

4.1、根目錄介紹

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

1)3rdparty/,包含第三方的庫(kù),比如視頻解碼用的 ffmpeg,jpg、png、tiff等圖片的開源解碼庫(kù)。
2)apps/,包含進(jìn)行 haar 分類器訓(xùn)練的工具,opencv 進(jìn)行人臉檢測(cè)便是基于 haar 分類器。如果你想檢測(cè)

人臉以外的圖片,千萬(wàn)不要錯(cuò)過這幾個(gè)工具。
3)cmake/,包含生成工程項(xiàng)目時(shí) cmake 的依賴文件,用于智能搜索第三方庫(kù),普通開發(fā)者不需要關(guān)心這個(gè)文件夾的內(nèi)容。
4)data/,包含 opencv 庫(kù)以及范例中用到的資源文件,haar 物體檢測(cè)的分類器位于haarcascades子文件中。
5)doc/,包含生成文檔所需的源文件以及輔助腳本。
6)include/,包含入口頭文件。opencv 子文件夾中是 C 語(yǔ)言風(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ù)量增長(zhǎng)得很快,后面我會(huì)依次介紹每個(gè)模塊的作用。
8)platforms/,包含交叉編譯所需的工具鏈以及額外的代碼,交叉編譯指的是在一個(gè)操作系統(tǒng)中編譯供另一個(gè)系統(tǒng)使用的文件。
9)samples/,范例文件夾。

4.2、常用模塊介紹

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

1)androidcamera/,僅用于android平臺(tái),使得可以通過與其他平臺(tái)相同的接口來(lá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í)的場(chǎng)景,確保計(jì)算的準(zhǔn)確性。

三維重建通常用在雙目視覺(立體視覺),即兩個(gè)標(biāo)定后的攝像頭觀察同一個(gè)場(chǎng)景,通過計(jì)算兩幅畫面中的相關(guān)性來(lái)估算像素的深度。
9)features2d/,包含 2D 特征值檢測(cè)的框架。包含各種特征值檢測(cè)器及描述子,例如 FAST、MSER、OBRB、BRISK等。

各類特征值擁有統(tǒng)一的算法接口,因此在不影響程序邏輯的情況下可以進(jìn)行替換。
10)objdetect/,物體檢測(cè)模塊。包括haar分類器、SVM檢測(cè)器及文字檢測(cè)。
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)聚類及搜索的近似算法,做圖像檢索的讀者對(duì)它不會(huì)陌生。
13)photo/,計(jì)算攝影學(xué)。包括圖像修補(bǔ)、去噪、HDR成像、非真實(shí)感渲染等。如果讀者想實(shí)現(xiàn)Photoshop的高級(jí)功能,

那么這個(gè)模塊必不可少。
14)stitching/,圖像拼接,可用于制作全景圖。
15)nonfree/,受專利保護(hù)的算法。包含SIFT和SURF,從功能上來(lái)說(shuō)這兩個(gè)算法屬于features2d模塊的,但由于它們都

是受專利保護(hù)的,想在項(xiàng)目中可能需要專利方的許可。
16)shape/,形狀匹配算法模塊。用于描述形狀、比較形狀。
17)softcascade/,另一種物體檢測(cè)算法,Soft Cascade 分類器。包含檢測(cè)模塊和訓(xùn)練模塊。
18)superres/,全稱為 Super Resolution,用于增強(qiáng)圖像的分辨率。
19)videostab/,全稱為 Video Stabilization,用于解決相機(jī)移動(dòng)時(shí)拍攝的視頻不夠穩(wěn)定的問題。
20)viz/,三維可視化模塊?梢哉J(rèn)為這個(gè)模塊實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的三維可視化引擎,有各種UI控件和鍵盤、鼠標(biāo)交互方式。

底層實(shí)現(xiàn)基于 VTK 這個(gè)第三方庫(kù)。

4.3、CUDA加速模塊

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

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-加速的特征檢測(cè)與描述模塊,與features2d/模塊功能類似。
6)cudafilters/,CUDA-加速的圖像濾波。
7)cudaimgproc/,CUDA-加速的圖像處理算法,包含直方圖計(jì)算、霍夫變換等。
8)cudaoptflow/,CUDA-加速的光流檢測(cè)算法。
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->變量值:

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

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

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

       經(jīng)過以上的基礎(chǔ)知識(shí)介紹后,就可以進(jìn)行入門的實(shí)踐了。在上面配置完成的工程中,來(lái)顯示一幅圖片,驗(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í)行程序,效果如下:

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

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

       圖片中的女神名叫萊娜·瑟德貝里(瑞典文:Lena Soderberg),1951 年 3 月 31 日出生于瑞典,在 1972 年 11 月期的

《花花公子》雜志中,她成為了當(dāng)期的玩伴女郎(女模特),拍攝了一些照片。 

       在計(jì)算機(jī)圖像界,Lena圖是最受歡迎、使用最多的測(cè)試圖,在圖像處理領(lǐng)域,Lena 成為無(wú)人不知、無(wú)人不曉的女神。

很多圖像處理教程和會(huì)議論文都是用Lena圖作為測(cè)試驗(yàn)證圖,因此大多數(shù)圖像處理學(xué)習(xí)者都是從這張圖入門的,在網(wǎng)上也能搜

到各種被處理過的相關(guān)圖片:

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

       在1973年6、7月間,美國(guó)南加州大學(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)來(lái)并且

帶著一幅最近出版的《花花公子》。雜志上的Lena照片(Lena Soderberg,萊娜·瑟德貝里,1972年在在芝加哥當(dāng)模特的瑞

典人,是《花花公子》當(dāng)年的十一月小姐)讓教授眼前一亮。教授便將這張圖掃描了下來(lái),截取圖片上半身的一部分(她的

臉部與裸露的肩部)作為了他研究使用的樣例圖像。從此,這幅512*512的經(jīng)典Lena圖片就誕生了。

       萊娜的這張照片在無(wú)意間竟然一炮而紅!戴著柔軟的羽毛帽子,站在一面全身鏡前,回頭凝視著觀眾,她裸露的右肩,

眼睛在招手,嘴角掛著蒙娜麗莎式的微笑。自《蒙娜麗莎》以來(lái),沒有哪幅圖像被研究得如此深入。該圖在數(shù)字視頻處理

學(xué)習(xí)與研究中頗為知名,常被用作數(shù)字視頻處理各種實(shí)驗(yàn)(例如數(shù)據(jù)壓縮和降噪)及科學(xué)出版物的例圖。萊娜圖在圖像

壓縮算法是最廣泛應(yīng)用的標(biāo)準(zhǔn)測(cè)試圖—她的臉部與裸露的肩部已經(jīng)變成了事實(shí)上的工業(yè)標(biāo)準(zhǔn)。 

       從事影像數(shù)據(jù)的壓縮、運(yùn)算、傳輸、 解壓縮等處理時(shí),都經(jīng)常采用這張圖像來(lái)當(dāng)測(cè)試樣本。 這張圖片含有豐富的頻段,

包括處于低頻的光滑皮膚和處于高頻的羽毛,很適合做為測(cè)試圖片。而人眼對(duì)于人臉的細(xì)節(jié)差別感受也遠(yuǎn)比一般的景物更為明顯。

       戴維·C·蒙森(David C.Munson),IEEE圖像處理匯刊(IEEE Transactions on Image Processing)的主編,

在1996年1月引用了兩個(gè)原因來(lái)說(shuō)明萊娜圖在科研領(lǐng)域流行的原因:

1)首先,該圖片包含了平整的區(qū)塊、清晰細(xì)致的紋路、漸漸變化的光影、顏色的深淺層次等細(xì)節(jié),這些都有

益于測(cè)試各種不同的圖像處理算法。它是一幅很好的測(cè)試照片!
2)其次,由于這是一個(gè)非常有魅力女人的照片。因此,多數(shù)由男性組成圖像處理研究行業(yè)傾向于使用他們認(rèn)

為很有吸引力的圖片,也并不令人驚奇。

       在 1997 年的第五十屆 IS&T(圖像科學(xué)與技術(shù))大會(huì)上,Lena 被邀請(qǐng)為貴賓出席,在該會(huì)議上,她成了最受

歡迎的人物,有人甚至把她稱為 “The First Lady of Internet”(互聯(lián)網(wǎng)第一夫人)。會(huì)議上,她做了自己的簡(jiǎn)要發(fā)

言,并被無(wú)數(shù)的粉絲索取簽名及拍照。

       以現(xiàn)在的標(biāo)準(zhǔn)來(lái)看,Lena圖片的分辨率比較低,隨機(jī)計(jì)算機(jī)技術(shù)的發(fā)展,后面可能不再適合作為未來(lái)圖像

理的測(cè)試圖片。也許終有一天,它會(huì)被計(jì)算機(jī)圖像學(xué)丟棄。但不可否認(rèn)的是,它曾經(jīng)在計(jì)算機(jī)圖像領(lǐng)域做出過偉大的貢獻(xiàn)。

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

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

       OpenCV是一個(gè)開源計(jì)算機(jī)視覺庫(kù),用于圖像和視頻處理、分析和識(shí)別。它提供了各種算法和工具,如圖像處理、

特征檢測(cè)、目標(biāo)跟蹤、人臉識(shí)別等,可以在計(jì)算機(jī)視覺應(yīng)用中使用。

       OpenGL是一個(gè)開源圖形庫(kù),用于創(chuàng)建3D圖形和動(dòng)畫。它提供了各種功能和工具,如渲染、光照、紋理映射等,它

可以幫助開發(fā)人員實(shí)現(xiàn)高效的圖形渲染和動(dòng)畫效果,可以與許多編程語(yǔ)言搭配使用,如C++、Java等。它應(yīng)用于游戲、

虛擬現(xiàn)實(shí)、建筑等多個(gè)領(lǐng)域。此外,OpenGL還提供了一個(gè)專用于嵌入式領(lǐng)域的OpenGL ES (OpenGL for Embedded Systems),

是 OpenGL 三維圖形 API 的子集,主要針對(duì)手機(jī)、PAD和游戲主機(jī)等嵌入式設(shè)備而設(shè)計(jì)。

       雖然OpenCV和OpenGL都可以用于圖像處理和計(jì)算機(jī)視覺應(yīng)用,但它們的定位和應(yīng)用場(chǎng)景不同。OpenCV主要用于

圖像和視頻的處理分析,而OpenGL則主要用于3D圖形和動(dòng)畫的創(chuàng)建與渲染。

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

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

       OpenCV是一個(gè)開源的計(jì)算機(jī)視覺庫(kù),提供了各種各樣的圖像處理和計(jì)算機(jī)視覺算法,如圖像讀取、圖像處理、

圖像濾波、圖像分割、邊緣檢測(cè)、特征提取、目標(biāo)檢測(cè)與跟蹤、人臉識(shí)別等。OpenCV可以用于圖像處理、視頻處理、

機(jī)器人視覺、自動(dòng)駕駛等多個(gè)領(lǐng)域。

       YOLO(You Only Look Once)是一個(gè)基于深度學(xué)習(xí)的開源目標(biāo)檢測(cè)算法。相比傳統(tǒng)的目標(biāo)檢測(cè)算法,YOLO

可以實(shí)現(xiàn)更快的檢測(cè)速度,在保持較高的準(zhǔn)確率的同時(shí),可以實(shí)現(xiàn)實(shí)時(shí)檢測(cè)。YOLO采用單個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)同時(shí)預(yù)測(cè)圖

像中所有物體的類別和位置,可以處理多種尺度和多個(gè)物體。YOLO可以用于智能監(jiān)控、自動(dòng)駕駛、機(jī)器人視覺等領(lǐng)域。

       因此,OpenCV和YOLO都是計(jì)算機(jī)視覺領(lǐng)域的工具,它們的應(yīng)用場(chǎng)景和目標(biāo)有所不同。OpenCV更加通用,

可以用于各種圖像處理和計(jì)算機(jī)視覺應(yīng)用,而YOLO則更加專注于目標(biāo)檢測(cè)領(lǐng)域,可以實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測(cè),檢測(cè)效率要高一些。

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

        說(shuō)到OpenCV和OpenGL的區(qū)別,我們也來(lái)順便說(shuō)說(shuō)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ì)理念是簡(jiǎn)單易用,允許開發(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)樗轻槍?duì)Windows操作系統(tǒng)和硬件設(shè)計(jì)的。

4)開發(fā)語(yǔ)言:OpenGL是用C語(yǔ)言編寫的API,對(duì)于初學(xué)者和非專業(yè)開發(fā)人員來(lái)說(shuō),學(xué)習(xí)和使用OpenGL比較困難。

而DirectX是用C++編寫的API,更易于學(xué)習(xí)和使用。

5)社區(qū)支持:OpenGL有一個(gè)活躍的社區(qū),提供了大量的教程、資料和開源項(xiàng)目,使開發(fā)人員更容易入門。而DirectX

的社區(qū)相對(duì)較小,因?yàn)樗菍?a target="_blank" href="http://www.liuyangsem.com" class="UBBWordLink">Windows平臺(tái)設(shè)計(jì)的。

       總的來(lái)說(shuō),OpenGL和DirectX都有各自的優(yōu)缺點(diǎn),在選擇使用哪個(gè)API時(shí),需要考慮到項(xiàng)目需求、開發(fā)成本、平臺(tái)支持等因素。

以多媒體SDL庫(kù)為例,我們經(jīng)常使用該庫(kù)在軟件中繪制視頻圖像,當(dāng)用在Windows平臺(tái)上時(shí)SDL內(nèi)部使用DirectX繪圖,當(dāng)用

在Linux平臺(tái)上時(shí)SDL內(nèi)部則使用OpenGL繪圖。



熱門文章
  • 華碩B75m-A主板維修一例
  • iPad Air 4不充電,不開機(jī)(PD芯片...
  • 華碩X55JX時(shí)不時(shí)不觸發(fā)(橋待機(jī)供電...
  • 戴爾筆記本恢復(fù)出廠設(shè)置恢復(fù)原廠系...
  • 開源計(jì)算機(jī)視覺庫(kù)OpenCV詳解
  • hive 拉鏈表設(shè)計(jì)與實(shí)現(xiàn)
  • 條碼打印機(jī)設(shè)置標(biāo)簽紙大小?打印機(jī)驅(qū)...
  • 怎么判斷MySQL中sql語(yǔ)句索引是否生...
  • L1正則化和L2正則化
  • 在Linux系統(tǒng)下,可以使用以下方法和...
  • 主板型號(hào)怎么看?小編將給大家介紹...
  • win10在激活界面會(huì)提示無(wú)法訪問激活...
  • 錦州廣廈電腦上門維修

    報(bào)修電話:13840665804  QQ:174984393 (聯(lián)系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號(hào):遼ICP備2023002984號(hào)-1
    上門服務(wù)區(qū)域: 遼寧錦州市區(qū)
    主要業(yè)務(wù): 修電腦,電腦修理,電腦維護(hù),上門維修電腦,黑屏藍(lán)屏死機(jī)故障排除,無(wú)線上網(wǎng)設(shè)置,IT服務(wù)外包,局域網(wǎng)組建,ADSL共享上網(wǎng),路由器設(shè)置,數(shù)據(jù)恢復(fù),密碼破解,光盤刻錄制作等服務(wù)

    技術(shù)支持:微軟等
    主站蜘蛛池模板: 国产在线无码视频一区| 蜜芽亚洲av无码一区二区三区| 中文字幕无码视频手机免费看| 亚洲AV无码国产精品色午友在线 | 东京热HEYZO无码专区| 国产精品爽爽V在线观看无码| 免费无码av片在线观看| 精品无码人妻久久久久久| 亚洲成A人片在线观看无码不卡 | 久久精品日韩av无码| 亚洲国产精品无码久久久| 国产精品无码无片在线观看3D| 亚洲av无码av制服另类专区| 亚洲成A人片在线观看无码3D| 麻豆亚洲AV成人无码久久精品| 无码福利写真片视频在线播放| 久久久人妻精品无码一区| 熟妇人妻无码xxx视频| 日本精品人妻无码免费大全| 人妻精品无码一区二区三区| 久久精品岛国av一区二区无码| 中文无码喷潮在线播放| 国产成人精品无码一区二区三区| 精品无码人妻一区二区三区 | 色噜噜综合亚洲av中文无码| 无码激情做a爰片毛片AV片| 免费VA在线观看无码| 久久激情亚洲精品无码?V| 久久无码专区国产精品s| 久久av无码专区亚洲av桃花岛| 免费看成人AA片无码视频羞羞网| 亚洲性无码AV中文字幕| 成人无码WWW免费视频| 亚洲ⅴ国产v天堂a无码二区| 亚洲熟妇无码一区二区三区 | 国产做无码视频在线观看浪潮 | 久久老子午夜精品无码| 午夜无码A级毛片免费视频 | 久久午夜无码鲁丝片| 亚洲中文无码永久免| 亚洲午夜无码久久久久|