Opencv 笔记 opencv tutorial 2.1节 mat

前言:opencv中,,mat类型非常基础和重要。以下是opencv tutorial 2.1章节的中英文整理。

Mat简介

IplImage c结构 需要管理内存

class自动内存分配

Mat包括:

header

A pointer to the matrix containing the pixel values(can takedimentionlity根据存储方法)

头大小不变

将图像传给函数是常见做法

图像处理很耗计算量避免不必要的大图像复制

引用计数 reference counting

Mat D = A(Rect(10,10,100,100) )//use a Rect

Mat E = A(Range:all(),range(1,3);

whenever a header is cleaned, the counter is decreased. When the counter is zero, the matrix is freed.

复制矩阵数据的方式:修改F G 不会影响A

Mat F = A.Clone()

Mat G; A.CopyTo(G);

) mask

Opencv c++ interface 都不用考虑内存释放 memory freeing

mat创建方式

Mat B(A) //copy constructor

Mat C = A // assignment operator 只复制头

A B C point to the same single matrix

保存方法:

Grayscale

RGB适合人眼系统

HSV对光照不敏感

YCrCb jpeg图像格式

CIE Lab用来计算颜色距离

code the transparency of a color alpha(A)is needed

Data type: denth=深度

最小的是char 分为 unsignedsigned(-127-127) 1byte Int 是2个字符呦Float 32bits 4bytesDouble 64bits 8 bytesInt类型的宏

#define CV_8U 0

#define CV_8S 1

#define CV_16U 2

#define CV_16S 3

#define CV_32S 4

#define CV_32F 5

#define CV_64F 6

#define CV_8UC1 CV_MAKETYPE(CV_8U,1)

#define CV_8UC2 CV_MAKETYPE(CV_8U,2)

#define CV_8UC3 CV_MAKETYPE(CV_8U,3)

#define CV_8UC4 CV_MAKETYPE(CV_8U,4)

#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))

#define CV_8SC1 CV_MAKETYPE(CV_8S,1)

#define CV_8SC2 CV_MAKETYPE(CV_8S,2)

#define CV_8SC3 CV_MAKETYPE(CV_8S,3)

#define CV_8SC4 CV_MAKETYPE(CV_8S,4)

#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n))

#define CV_16UC1 CV_MAKETYPE(CV_16U,1)

#define CV_16UC2 CV_MAKETYPE(CV_16U,2)

#define CV_16UC3 CV_MAKETYPE(CV_16U,3)

#define CV_16UC4 CV_MAKETYPE(CV_16U,4)

#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n))

#define CV_16SC1 CV_MAKETYPE(CV_16S,1)

#define CV_16SC2 CV_MAKETYPE(CV_16S,2)

#define CV_16SC3 CV_MAKETYPE(CV_16S,3)

#define CV_16SC4 CV_MAKETYPE(CV_16S,4)

#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n))

#define CV_32SC1 CV_MAKETYPE(CV_32S,1)

#define CV_32SC2 CV_MAKETYPE(CV_32S,2)

#define CV_32SC3 CV_MAKETYPE(CV_32S,3)

#define CV_32SC4 CV_MAKETYPE(CV_32S,4)

#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n))

#define CV_32FC1 CV_MAKETYPE(CV_32F,1)

#define CV_32FC2 CV_MAKETYPE(CV_32F,2)

#define CV_32FC3 CV_MAKETYPE(CV_32F,3)

#define CV_32FC4 CV_MAKETYPE(CV_32F,4)

#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n))

#define CV_64FC1 CV_MAKETYPE(CV_64F,1)

#define CV_64FC2 CV_MAKETYPE(CV_64F,2)

#define CV_64FC3 CV_MAKETYPE(CV_64F,3)

#define CV_64FC4 CV_MAKETYPE(CV_64F,4)

#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))

加载图像Load image

E.g. Mat M = imread(file name,1)

E.g Mat A(2,2,CV_8UC3, Scalar(0,0,255))

IplImage –>mat

IplImage *img = cvLoadImage(filename,1)

Mat mtx(img) //只创造头 共享矩阵数据

create函数

Mat M;

无论何时何地,只要创造就有收获,只有不息的奋进,才能证明生命的存在。

Opencv 笔记 opencv tutorial 2.1节 mat

相关文章:

你感兴趣的文章:

标签云: