0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenCV入門:了解與安裝指南

新機器視覺 ? 來源:古月居 ? 2024-02-21 14:26 ? 次閱讀

因為最近想做圖像處理、人臉檢測/識別之類的相關開發(fā),所以就開始補OpenCV的相關知識,便開個專欄用于記錄學習歷程和在學習過程中遇到的一些值得注意的重點和坑。

學習過程基本上也是面向官方文檔和Google。

簡介

OpenCV(開源的計算機視覺庫)是基于BSD協(xié)議,因此它可免費用于學術和商業(yè)用途。

其提供C++,C,PythonJava接口,支持Windows,Linux,Mac OS,iOSAndroid。

OpenCV致力于高效運算和即時應用開發(fā)。因其是用優(yōu)化的C/C++編寫的,故其可以充分利用多核處理優(yōu)勢。

并且還啟用了OpenSL,它可以利用底層異構計算平臺的硬件加速。

廣泛運用在世界各地,OpenCV擁有超過4.7萬人的用戶社區(qū)和超過1400萬的下載次數(shù)。

從互動藝術、礦山檢查、網絡地圖到先進的機器人技術都有OpenCV的身影。

它包含了數(shù)百個計算機視覺算法。它有一個模塊化的結構,囊括了幾個共享的或靜態(tài)的庫,其中包括:

Core functionality(核心功能):一個簡潔基本且模塊化的數(shù)據(jù)結構,包含了多維數(shù)組(矩陣)和用于其他模塊的基本功能。

Image processing(圖像處理):包括線性和非線性的圖像濾波、幾何圖像轉換(縮放、仿射和透視調整)、顏色模式轉換、直方圖等等。

Video(視頻):一個視頻分析模塊,其包含了運動估計、背景消除和目標跟蹤算法。

Calib3d:提供基本的多視圖幾何算法、平面和立體影像校正、物體定位、立體通信算法和三維重建。

Features2d:顯著特征探測器、描述符和描述符匹配器。

Objectect:檢測對象和預定義的類的實例(例如:臉部、眼睛、杯子、人、車等等)。

Highgui(圖形界面):提供一個簡單易用的UI。

Video I/O:提供一個簡單易用的視頻捕獲和編碼解碼界面。

GPU:來自于不同的OpenCV模塊的GPU加速算法。

......一些其他的輔助模塊,例如FLANN(神經網絡)和Google測試封裝、Python綁定等等。

下面來講一下OpenCV的下載和安裝(C++和Python3 API)。

C++

先從官網上下載好文件包:Releases - OpenCV library

https://link.zhihu.com/?target=https%3A//opencv.org/releases.html

建議選擇最新的3.3.1 Win Pack。

70046fc8-d06f-11ee-a297-92fbcf53809c.jpg

下載好后,雙擊運行exe程序解壓,選擇一個解壓后的目錄。

(其會自動生成一個opencv目錄,不需要單獨再創(chuàng)一個opencv目錄。另,不建議將其解壓到C盤根目錄下的Program Files或Program File (x86)目錄下,可能會因系統(tǒng)權限導致各種問題)

7013b500-d06f-11ee-a297-92fbcf53809c.png

解壓完畢后,將其寫入系統(tǒng)的環(huán)境變量中,向Path中添加一條:"解壓后opencv所在的文件夾目錄opencvuildx64vc14in",

例如我將其解壓在C:Leon下,則添加:C:Leonopencvuildx64vc14in。

7023113a-d06f-11ee-a297-92fbcf53809c.png

這樣OpenCV3.3.1就算安裝好了,接下來就在自己IDE中配置一下就行。

例如我C++開發(fā)環(huán)境是Visual Studio 2017,相應的項目創(chuàng)建配置流程如下:

1. 打開Visual Studio,新建一個項目(快捷鍵Ctrl+Shift+N),項目名自取,選擇好創(chuàng)建目錄。

703136ca-d06f-11ee-a297-92fbcf53809c.png

第一步圖

2. 新建一個C++文件(快捷鍵Ctrl+Shift+A)。

703c7e22-d06f-11ee-a297-92fbcf53809c.png

第二步圖

3. 將菜單欄下的Debug后的x86改為x64。

704e01e2-d06f-11ee-a297-92fbcf53809c.png

第三步圖

4. 單擊右側窗口的Property Manager(屬性管理),或者點擊菜單欄中的View(視圖)->Other Windows(其他窗口)->Property Manager(屬性管理)。

705f947a-d06f-11ee-a297-92fbcf53809c.jpg

第四步圖

5. 右鍵屬性管理窗口中的Debug | x64,選擇Property(屬性),編輯包含目錄。

707aef04-d06f-11ee-a297-92fbcf53809c.png

第五步圖

6. 添加三個目錄路徑并確定。(注意路徑是你opencv安裝的路徑)

7088edb6-d06f-11ee-a297-92fbcf53809c.png

第六步圖

7. 同理,添加庫目錄,如圖所示。

70979aaa-d06f-11ee-a297-92fbcf53809c.png

第七步圖1

70a105d6-d06f-11ee-a297-92fbcf53809c.png

第七步圖2

8. 添加附加依賴項。

鏈接器->輸入->附加依賴項。

將opencv_world331d.lib鍵盤敲入(注意opencv版本,3.3.1是331,其他版本自行腦補)。

70bc06c4-d06f-11ee-a297-92fbcf53809c.png

第八步圖1

70d653bc-d06f-11ee-a297-92fbcf53809c.png

第八步圖2

9. 確定,應用。庫的導入已經完成了。接下來就可以開始OpenCV相關開發(fā)了。

10. 先將以下代碼(功能是顯示一張圖片)寫入項目中的Source.cpp文件,編譯鏈接運行(快捷鍵Ctrl+F5),看是否能跑起來,跑起來了說明配置成功!

#include 
using namespace cv;


int main() {
 Mat img = imread("C:\Users\11537\Desktop\新垣結衣.jpg");  //引號內選一張自己計算機內的圖片的路徑
 imshow("新垣結衣", img);  //打開一個窗口,顯示圖片
 waitKey(0);  //在鍵盤敲入字符前程序處于等待狀態(tài)
 destroyAllWindows();  //關閉所有窗口
 return 0;
}

Python 3.x

相對于C++,Python的Opencv庫導入就相對簡單很多了。

一提及Python安裝第三方庫,大家第一時間會想到pip,的確pip是Python第三方庫安裝的利器。

首先我們得先安裝另一個第三方庫numpy,這是opencv的依賴庫,沒有它無法進行python-opencv開發(fā)。

很簡單,保持有網狀態(tài)命令行下輸入pip install numpy,自動下載安裝完后搞定。

比較遺憾的是默認的pip源中沒有opencv這個庫,不能直接pip install opencv,不過這時候我們可以下載其whl文件,下載地址:Python Extension Packages for Windows

https://link.zhihu.com/?target=https%3A//www.lfd.uci.edu/~gohlke/pythonlibs/

在頁面中找到OpenCV欄,根據(jù)自己計算機中Python解釋器版本選擇下載文件。

70fc6ade-d06f-11ee-a297-92fbcf53809c.jpg

下載好后,通過命令行到whl文件目錄下,pip install [下載的whl完整文件名]。例如pip install opencv_python-3.3.1-cp36-cp36m-win_amd64.whl

tip: 可以通過這個方法下載其他whl文件,用法一樣,可以在無網狀態(tài)下直接pip install whl文件導入第三方庫

對于PyCharm用了Virtualenv虛擬環(huán)境的用戶,可以在IDE中打開命令行界面到該項目venv/Scripts目錄下./pip install numpy以及whl文件導入虛擬目錄site-packages文件夾中。

同樣上個測試代碼(功能是顯示一張圖片):

import numpy as np
import cv2


def cv2_imread(file_path, flag=1):
"""解決包含中文的路徑cv2.imread無法打開的問題的函數(shù)"""
  return cv2.imdecode(np.fromfile(file_path, dtype=np.uint8), flag)


if __name__ == "__main__":


  img = cv2_imread("C:\Users\11537\Desktop\長澤雅美.jpg")  #第一個參數(shù)選一張自己計算機內的圖片的路徑
  cv2.imshow("Nagasawa Masami", img)  #python的cv2.imshow第一個參數(shù)(即窗口名)為中文會亂碼,至今未找到有效解決方案
  cv2.waitKey(0)  #在鍵盤敲入字符前程序處于等待狀態(tài)
  cv2.destroyAllWindows()  #關閉所有窗口

小結

一次OpenCV初體驗,個人覺得可能是歷史遺留問題(以前的OpenCV是完全由C實現(xiàn)的),OpenCV的OOP特性并不強,跟Python的另一個圖像庫pillow相比用起來感覺有點怪。

不過不得不說,OpenCV還是挺強大的。至于C++和Python關于OpenCV接口問題,其實實現(xiàn)都大同小異,也沒必要糾結于到底用C++好還是Python好,移植重構很容易。

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 圖像處理
    +關注

    關注

    26

    文章

    1268

    瀏覽量

    56368
  • 人臉檢測
    +關注

    關注

    0

    文章

    78

    瀏覽量

    16391
  • OpenCV
    +關注

    關注

    29

    文章

    622

    瀏覽量

    41087
  • python
    +關注

    關注

    53

    文章

    4752

    瀏覽量

    84066

原文標題:OpenCV簡介及安裝

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    OpenCV實驗大師平臺安裝指南

    工程與技術培訓得痛點深深教育了我,讓我知道“工欲善其事必先利其器”。通過一年多得努力開發(fā)與不斷打磨,一款能夠提升OpenCV教學質量與OpenCV工程化開發(fā)質量與速度的工具軟件成功出現(xiàn)了。它就
    的頭像 發(fā)表于 11-13 11:43 ?729次閱讀
    <b class='flag-5'>OpenCV</b>實驗大師平臺<b class='flag-5'>安裝</b><b class='flag-5'>指南</b>

    Redhat 9.0安裝入門指南

    Redhat 9.0安裝入門指南
    發(fā)表于 06-30 17:30 ?27次下載

    OpenCV_編程簡介(入門必讀)

    opencv編程簡介,入門必讀,適合新手簡單了解opencv的相關知識。
    發(fā)表于 03-21 13:49 ?11次下載

    OpenCV進行基本繪圖_《OpenCV3編程入門》書本配套源

    OpenCV3編程入門》書本配套源代碼:用OpenCV進行基本繪圖
    發(fā)表于 05-11 16:46 ?36次下載

    OpenCV3編程入門-源碼例程全集-OpenCV開發(fā)環(huán)境的配置

    OpenCV3編程入門-源碼例程全集-OpenCV開發(fā)環(huán)境的配置,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-18 16:27 ?20次下載

    OpenCV3編程入門-源碼例程全集-點追蹤

    OpenCV3編程入門-源碼例程全集-點追蹤
    發(fā)表于 09-18 16:38 ?0次下載

    OpenCV3編程入門-源碼例程全集-播放視頻

    OpenCV3編程入門-源碼例程全集-播放視頻
    發(fā)表于 09-17 22:54 ?18次下載

    OpenCV3編程入門-源碼例程全集-人臉識別

    OpenCV3編程入門-源碼例程全集-人臉識別
    發(fā)表于 09-17 22:55 ?2次下載

    OpenCV3編程入門-源碼例程全集-模板匹配

    OpenCV3編程入門-源碼例程全集-模板匹配
    發(fā)表于 09-17 22:55 ?4次下載

    OpenCV進行基本繪圖_OpenCV3編程入門-源碼例程

    OpenCV3編程入門-源碼例程全集-用OpenCV進行基本繪圖,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-18 17:02 ?3次下載

    2寸易用型指紋門禁機安裝指南&入門指南 V1.0(201

    2寸易用型指紋門禁機安裝指南&入門指南 V1.0(2014-6-4)
    發(fā)表于 02-15 23:45 ?19次下載

    opencv編譯安裝筆記(Linux、Ubuntu )

    本文介紹了兩種opencv編譯安裝筆記:Linux下編譯安裝OpenCV和Ubuntu 下安裝 Open
    發(fā)表于 12-03 10:33 ?5078次閱讀
    <b class='flag-5'>opencv</b>編譯<b class='flag-5'>安裝</b>筆記(Linux、Ubuntu )

    OpenCV安裝和配置教程免費下載

    本文檔的主要內容詳細介紹的是OpenCV安裝和配置教程免費下載。
    發(fā)表于 10-18 16:56 ?17次下載

    如何安裝和配置OpenCVOpenCV的幾個小問題解答

    本文檔的主要內容詳細介紹的是如何安裝和配置OpenCVOpenCV的幾個小問題解答包括了:安裝和配置OpenCV,Highgui.h與Cv
    發(fā)表于 12-17 17:25 ?9次下載
    如何<b class='flag-5'>安裝</b>和配置<b class='flag-5'>OpenCV</b>及<b class='flag-5'>OpenCV</b>的幾個小問題解答

    BorlandCBuilder6.0安裝OPENCV方法

    BorlandCBuilder6.0安裝OPENCV方法(新型電源技術結課論文UC3842)-文檔為BorlandCBuilder6.0安裝OPENCV方法詳解文檔,是一份不錯的參考資
    發(fā)表于 09-17 15:34 ?9次下載
    BorlandCBuilder6.0<b class='flag-5'>安裝</b><b class='flag-5'>OPENCV</b>方法