天天看點

CheatSheet——OpenCV

本系列博文主要記錄各種庫或者知識點使用過程中常用的一些操作,将這些操作彙總在一起,形成一個參考手冊(CheatSheet),友善快速檢視!

清單:

CheatSheet——PCL

CMakeLists.txt檔案書寫

find_package(OpenCV REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS})

target_link_libraries(<project_name> ${OpenCV_LIBS})
           

常用操作

頭檔案包含

//opencv資料結構聲明
#include <opencv2/opencv.hpp> //包含所有相關處理頭檔案
           

Mat

Mat類型用在函數參數中時預設傳遞矩陣頭,即不是真正的用實參去複制構造出一個形參,是以可以不用傳遞引用也不會造成大資料複制引起的運算量。

a.矩陣定義

特殊矩陣初始化:

Mat::eye(4,4,CV_16U) //4x4機關陣

Mat::ones(4,4,CV_16U)//4x4全1矩陣,可以乘以系數變成想要的數值

Mat::zeros(4,4,CV_16U)//4x4全0矩陣

b. Mat矩陣元素類型定義

CheatSheet——OpenCV

c. 讀入圖檔操作

imread函數原型

Mat imread( const String& filename, int flags = IMREAD_COLOR );
           

特别注意第二個參數,其決定了是否正确讀入了想要的圖檔資料,其取值及含義如下:

/* 8bit, color or not */
CV_LOAD_IMAGE_UNCHANGED =-1,
/* 8bit, gray */
CV_LOAD_IMAGE_GRAYSCALE =0,
/* ?, color */
CV_LOAD_IMAGE_COLOR =1,
/* any depth, ? */
CV_LOAD_IMAGE_ANYDEPTH =2,
/* ?, any color */
CV_LOAD_IMAGE_ANYCOLOR =4,
           

經測試,傳回Mat類型如下:

flag=-1, 原深度,原通道

flag=0, 8位深度,1通道

flag=1, 8位深度,3通道

flag=2, 原深度,1通道

flag=3, 原深度,3通道

flag=4, 8位深度,原通道