本系列博文主要記錄各種庫或者知識點使用過程中常用的一些操作,将這些操作彙總在一起,形成一個參考手冊(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矩陣元素類型定義
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位深度,原通道