OpenCV2:開頭篇 介紹

一.OpenCV簡介

OpenCV全部的類和函數都在cv命名空間裏面,能夠用html

using namespace cv;算法

#include "opencv2/opencv.hpp"數組

 

1.Core模塊--核心組件模塊

#include "opencv2/core/core_c.h"網絡

#include "opencv2/core/core.hpp"數據結構

基礎結構及操做 動態結構  數組操做 繪圖函數  XML/YAML  聚類及實用程序  系統函數宏框架

 

2.Highgui模塊--頂層GUI及視頻I/O

#include "opencv2/highgui/highgui_c.h"機器學習

#include "opencv2/highgui/highgui.hpp"編輯器

用戶界面 讀/寫圖像及視頻 QT新功能ide

 

3.Imgproc模塊--圖像處理模塊

#include "opencv2/imgproc/imgproc_c.h"函數

#include "opencv2/imgproc/imgproc.hpp"

圖像濾波  幾何圖像變換 混合圖像變換 直方圖  結構分析及形狀描述  運動分析及目標跟蹤/特徵/目標檢測

 

4.Photo模塊--計算圖像

#include "opencv2/photo/photo.hpp"

圖像修復及去噪

 

5.Video模塊--視頻分析

#include "opencv2/video/video.hpp"

運動分析及目標跟蹤

 

6.Features2d模塊--2維特徵框架

#include "opencv/features2d/features2d.hpp"

特徵檢測與描述 特徵檢測提取匹配接口 關鍵點與匹配點繪圖及對象分類

 

7.Calib3d模塊--攝像機標定及3維重建

#include "opencv2/calib3d/calib3d.hpp"

包含攝像機標定及3維重建

 

8.Objdetect模塊--目標檢測

#include "opencv2/objdetect/objdetect.hpp"

級聯分類器及SVM

 

9.ML模塊--及其學習

#include "opencv2/ml/ml.hpp"

包含機器學習(統計模型 貝葉斯分類器 最近鄰分類器 支持向量機 決策樹 提高 梯度提高樹  隨機樹 超隨機樹  最大指望 神經網絡 及 機器學習數據)

 

10.Flann模塊--聚類及多維空間搜索

#include "opencv2/flann/miniflann.hpp"

包含計算幾何,快速最近鄰搜素及聚類

 

11.Contrib模塊--貢獻及實驗成果

#include "opencv2/contrib/contrib.hpp"

未成熟的理論應用,包含立體匹配 人臉識別 視網膜模型等

 

12.Legacy模型--棄用的成果

運動分析 最大指望 直方圖 CAPI  特徵檢測及描述等模塊中棄用的成果

 

13.Ocl模塊--計算機視覺中OpenCL加速

計算機視覺中OpenCL加速模塊

 

14.Nonfree模塊--未免費功能

主要包含特徵檢測與描述相關受保護成果

 

15.Stitching模塊--圖像拼接

圖像拼接頂層操做函數 旋轉 自動標定 仿射變換 接縫估計 曝光補充  及 圖像融合技術

 

16.Gpu模塊--計算機視覺中GPU加速

GPU模塊及數據結構,包含圖像處理與分析模塊

 

二.圖像經常使用方法

圖像能夠分爲四種基本類型:二值圖像、灰度圖像、索引圖像、RGB圖像
線性代數  矩陣分析
 
圖像處理經常使用的方法:
    1.圖像變換
 
    2.圖像編碼與壓縮
 
    3.圖像加強與復原
 
    4.圖像分割
 
    5.圖像描述
 
    6.圖像分類(識別)
 
    7.圖像恢復
 
    8.圖像匹配分析
 
1、256色轉灰度圖
2、Walsh變換
3、二值化變換
4、閾值變換
5、傅立葉變換
6、離散餘弦變換
 
數字圖像處理領域的二十四個典型算法及vc實現、第二章
7、高斯平滑
8、圖像平移
9、圖像縮放
10、圖像旋轉

 

直方圖均衡化  常見濾波  圖像銳化 邊緣提取  二值化

 

三.數字圖像處理內容

1.點運算

點運算主要針對圖像的像素進行加/減/乘/除等運算.圖像的點運算能夠有效地改變圖像的直方圖分佈,能夠提供圖像的分辨率以及圖像均衡

2.幾何變換

幾何變換包括對圖像的座標變換/移動/縮小/放大/選擇,多個圖像的配准以及圖像的扭曲校訂

3.圖像加強

圖像加強的做用主要是突出圖像的重要信息,同時減弱或者去除不須要的信息.經常使用的方法有灰度變換加強/直方圖加強/頻域加強以及彩色加強

4.圖像復原

圖像復原的主要目的是去除干擾和模糊,恢復圖像的原本面目.例如去噪聲復原處理經常使用的方法有線性復原和非線性復原

5.圖像的重建

圖像的重建起源於CT技術的發展,主要是利用採集的數據來重建圖像,圖像重建的主要算法有代數法/迭代法/傅立葉反投影法和使用最普遍的卷積反投影法

6.圖像形態學處理

圖像形態學是數學形態學的延伸,能夠實現圖像的腐蝕/膨脹和細化等效果

7.圖像分割

圖像分割的主要目的是將用戶感興趣的區域劃分出來,主要方法有邊緣分割法/閾值分割法/區域分割法和紋理分割法

8.圖像的編碼

圖像編碼主要是對圖像進行壓縮,制定多種編碼標準

9.圖像匹配

圖像匹配是指經過必定的匹配算法在多幅圖像之間進行識別,可分爲以像素爲基礎的匹配和以特徵爲基礎的匹配

 

四.OpenCV學習流程

1.先導篇

參考OpenCV2:先導篇 基礎數據類型

參考OpenCV2:先導篇 圖像分類

 

2.幼兒園篇

參考: OpenCV2:幼兒園篇 第一章 建立圖像並顯示

參考: OpenCV2:幼兒園篇 第二章 讀取圖像

參考: OpenCV2:幼兒園篇 第三章 導出圖像

參考: OpenCV2:幼兒園篇 第四章 訪問圖像

參考: OpenCV2:幼兒園篇 第五章 圖像幾何變換

參考: OpenCV2:幼兒園篇 第六章 圖像轉換

參考: OpenCV2:幼兒園篇 第七章 界面事件

參考: OpenCV2:幼兒園篇 第八章 視頻操做

 

3.小學篇

參考: OpenCV2:小學篇 圖像灰度變換技術-閾值化處理

參考: OpenCV2:小學篇 圖像灰度變換技術-直方圖處理

參考: OpenCV2:小學篇 圖像灰度變換技術-距離變換

參考: OpenCV2:小學篇 圖像灰度變換技術-其餘灰度變換

 

4.初中篇

圖像平滑也稱爲圖像模糊,經過圖像濾波能夠減小圖像噪聲和僞影,或者用blur()下降圖像分辨率

圖像平滑從信號處理的角度來看就是去除其中的高頻信息,保留低頻信息

 

參考: OpenCV2:初中篇 圖像平滑技術-圖像採樣

參考: OpenCV2:初中篇 圖像平滑技術-傅里葉變換和卷積

參考: OpenCV2:初中篇 圖像平滑技術-圖像噪聲

參考: OpenCV2:初中篇 圖像平滑技術-空間濾波

 

參考: OpenCV2:初中應用篇 圖像對比技術-圖像類似度

 

5.高中篇

圖像銳化是補償圖像輪廓,加強圖像的邊緣及灰度跳變部分,使得圖像變得清晰

 

參考: OpenCV2:高中篇 圖像銳化技術-邊緣檢測算子

 

6.大學篇

圖像加強主要是提升圖像細節和對比度,經過圖像平滑(降噪 去僞影) 和 圖像銳化(增強邊緣)

 

參考: OpenCV2:大學篇 形態學技術-腐蝕與膨脹操做

 

 

7.碩士篇

參考: OpenCV2:碩士篇 圖像分割技術-分水嶺分割

 

8.博士篇

 

9.總結篇

參考:OpenCV2:總結篇 core模塊

參考:OpenCV2:總結篇 highgui模塊

 

參考OpenCV2:總結篇 PS算法實現

 

3.應用篇

參考: OpenCV2:應用篇 QT+OpenCV實現圖片編輯器

相關文章
相關標籤/搜索