- core:核心模塊,主要包含了OpenCV中最基本的結構(矩陣,點線和形狀等),以及相關的基礎運算/操作。
- imgproc:圖像處理模塊,包含和圖像相關的基礎功能(濾波,梯度,改變大小等),以及一些衍生的高級功能(圖像分割,直方圖,形態分析和邊緣/直線提取等)。
- highgui:提供了用戶界面和文件讀取的基本函數,比如圖像顯示窗口的生成和控制,圖像/視頻文件的IO等。
- video:用於視頻分析的常用功能,比如光流法(Optical Flow)和目標跟蹤等。
- calib3d:三維重建,立體視覺和相機標定等的相關功能。
- features2d:二維特征相關的功能,主要是一些不受專利保護的,商業友好的特征點檢測和匹配等功能,比如ORB特征。
- object:目標檢測模塊,包含級聯分類和Latent SVM
- ml:機器學習算法模塊,包含一些視覺中最常用的傳統機器學習算法。
- flann:最近鄰算法庫,Fast Library for Approximate
- Nearest Neighbors,用於在多維空間進行聚類和檢索,經常和關鍵點匹配搭配使用。
- gpu:包含了一些gpu加速的接口,底層的加速是CUDA實現。
- photo:計算攝像學(Computational Photography)相關的接口,當然這只是個名字,其實只有圖像修復和降噪而已。
- stitching:圖像拼接模塊,有了它可以自己生成全景照片。
- nonfree:受到專利保護的一些算法,其實就是SIFT和SURF。
- contrib:一些實驗性質的算法,考慮在未來版本中加入的。
- legacy:字面是遺產,意思就是廢棄的一些接口,保留是考慮到向下兼容。
- ocl:利用OpenCL並行加速的一些接口。
- superres:超分辨率模塊,其實就是BTV-L1(Biliteral Total Variation – L1
- regularization)算法
- viz:基礎的3D渲染模塊,其實底層就是著名的3D工具包VTK(Visualization Toolkit)。
-
讀取:
cv2.imread(文件名,標記)讀入圖像,
cv2.IMREAD_COLOR():讀入彩色圖像
cv2.IMREAD_GRAYSCALE():以灰度模式讀入圖像
import cv2
import numpy as np
img = cv2.imread('45.jpg',0) -
建立窗口:第一個窗口名稱,第二參數窗口標識
cv2.namedWindow('WindowName', cv2.WINDOW_NORMAL)
WINDOW_AUTOSIZE 窗口大小自動適應圖片大小,並且不可手動更改。(默認模式)
WINDOW_NORMAL 用戶可以改變這個窗口大小
WINDOW_OPENGL 窗口創建的時候會支持OpenGL -
顯示:
cv2.imshow()顯示圖像,
cv2.waitKey()等待鍵盤輸入,為毫秒級 -
銷毀窗口: 刪除建立的全部窗口,括號內輸入想刪除的窗口名
cv2.destroyAllWindows() -
使用:
cv2.namedWindow('WindowName',cv2.WINDOW_NORMAL)
img = cv2.imread('xx.jpg',0)
cv2.imshow('WindowName',img)
cv2.waitKey(0)
cv2.destroyAllWindows() -
保存圖像:
cv2.imwrite('圖片名.png',圖片對象)
img = cv2.imread('xx.jpg',0)
cv2.imwrite('17.png',img) -
監聽鍵盤輸入:cv2.waitKey(0)
參數0表示永久監聽,單位為毫秒
指定監聽時間內無鍵盤輸入默認返回值為255,否則返回按下按鍵的ASCII值
32位系統:keyValue=cv2.waitKey(sec)
64位系統:keyValue=cv2.waitKey(sec) & oxff