OpenCV - 概述



OpenCV是一個跨平臺庫,我們可以用它來開發即時的**計算機視覺應用程式**。它主要關注影像處理、影片捕捉和分析,包括人臉檢測和物體檢測等功能。

讓我們從定義“計算機視覺”這個術語開始本章節。

計算機視覺

計算機視覺可以定義為一個學科,它解釋瞭如何根據場景中存在的結構屬性,從其二維影像重建、解釋和理解三維場景。它處理使用計算機軟體和硬體模擬和複製人類視覺。

計算機視覺與以下領域有很大的重疊:

  • **影像處理** - 它專注於影像處理。

  • **模式識別** - 它解釋了各種分類模式的技術。

  • **攝影測量學** - 它關注從影像中獲取精確測量。

計算機視覺與影像處理

**影像處理**處理影像到影像的轉換。影像處理的輸入和輸出都是影像。

**計算機視覺**是從影像中構建對物理物件的明確、有意義的描述。計算機視覺的輸出是對三維場景中結構的描述或解釋。

計算機視覺的應用

這裡列出了一些計算機視覺大量使用的主要領域。

機器人應用

  • 定位 - 自動確定機器人位置

  • 導航

  • 避障

  • 組裝(銷孔、焊接、噴漆)

  • 操控(例如 PUMA 機器人機械手)

  • 人機互動 (HRI) - 智慧機器人與人互動並服務於人

醫學應用

  • 分類和檢測(例如病變或細胞分類和腫瘤檢測)
  • 二維/三維分割
  • 三維人體器官重建(MRI 或超聲波)
  • 視覺引導機器人手術

工業自動化應用

  • 工業檢驗(缺陷檢測)
  • 組裝
  • 條形碼和包裝標籤讀取
  • 物體分揀
  • 文件理解(例如 OCR)

安全應用

  • 生物特徵識別(虹膜、指紋、人臉識別)

  • 監控 - 檢測某些可疑活動或行為

交通應用

  • 自動駕駛車輛
  • 安全,例如駕駛員警覺性監控

OpenCV 庫的特性

使用 OpenCV 庫,您可以:

  • 讀取和寫入影像

  • 捕捉和儲存影片

  • 處理影像(濾波、變換)

  • 執行特徵檢測

  • 檢測影片或影像中特定物體,例如人臉、眼睛、汽車。

  • 分析影片,即估計影片中的運動、減去背景以及跟蹤影片中的物體。

OpenCV 最初是用 C++ 開發的。除此之外,還提供了 Python 和 Java 繫結。OpenCV 執行在各種作業系統上,例如 Windows、Linux、OSx、FreeBSD、Net BSD、Open BSD 等。

本教程將使用 Java 繫結,透過示例來解釋 OpenCV 的概念。

OpenCV 庫模組

以下是 OpenCV 庫的主要庫模組。

核心功能

此模組涵蓋了用於構建 OpenCV 應用程式的基本資料結構,例如 Scalar、Point、Range 等。除此之外,它還包括多維陣列**Mat**,用於儲存影像。在 OpenCV 的 Java 庫中,此模組作為名為**org.opencv.core**的包包含。

影像處理

此模組涵蓋了各種影像處理操作,例如影像濾波、幾何影像變換、顏色空間轉換、直方圖等。在 OpenCV 的 Java 庫中,此模組作為名為**org.opencv.imgproc**的包包含。

影片

此模組涵蓋了影片分析概念,例如運動估計、背景減法和目標跟蹤。在 OpenCV 的 Java 庫中,此模組作為名為**org.opencv.video**的包包含。

影片輸入/輸出

此模組解釋了使用 OpenCV 庫進行影片捕捉和影片編解碼。在 OpenCV 的 Java 庫中,此模組作為名為**org.opencv.videoio**的包包含。

calib3d

此模組包括關於基本多檢視幾何演算法、單目和立體攝像機標定、物體姿態估計、立體匹配和三維重建元素的演算法。在 OpenCV 的 Java 庫中,此模組作為名為**org.opencv.calib3d**的包包含。

features2d

此模組包括特徵檢測和描述的概念。在 OpenCV 的 Java 庫中,此模組作為名為**org.opencv.features2d**的包包含。

Objdetect

此模組包括對物體和預定義類例項(例如人臉、眼睛、杯子、人、汽車等)的檢測。在 OpenCV 的 Java 庫中,此模組作為名為**org.opencv.objdetect**的包包含。

Highgui

這是一個易於使用的介面,具有簡單的 UI 功能。在 OpenCV 的 Java 庫中,此模組的功能包含在兩個不同的包中,即**org.opencv.imgcodecs**和**org.opencv.videoio**。

OpenCV 的簡史

OpenCV 最初是英特爾的一個研究專案,旨在為 CPU 密集型應用程式提供建議。它於 1999 年正式啟動。

  • 2006 年,其第一個主要版本 OpenCV 1.0 釋出。
  • 2009 年 10 月,第二個主要版本 OpenCV 2 釋出。
  • 2012 年 8 月,OpenCV 被非營利組織 OpenCV.org 接管。
廣告
© . All rights reserved.