OpenCV2:开头篇 介绍
一.OpenCV簡介
OpenCV所有的類和函數都在cv命名空間里面,可以用
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新功能
?
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.圖像匹配分析
?
一、256色轉灰度圖
二、Walsh變換
三、二值化變換
四、閾值變換
五、傅立葉變換
六、離散余弦變換
?
數字圖像處理領域的二十四個典型算法及vc實現、第二章
七、高斯平滑
八、圖像平移
九、圖像縮放
十、圖像旋轉
?
直方圖均衡化? 常見濾波? 圖像銳化 邊緣提取? 二值化
?
三.數字圖像處理內容
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實現圖片編輯器
?
?
轉載于:https://www.cnblogs.com/k5bg/p/11083891.html
總結
以上是生活随笔為你收集整理的OpenCV2:开头篇 介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: @Conditional 和 @Cond
- 下一篇: 单例模式中的懒汉式以及线程安全性问题