DFace SDK  2.0.0
LTM
dface::Mat类 参考

dface内置的图像数据 dface的所有接口只支持dface::Mat(RGB格式) 更多...

#include <mat.h>

Public 类型

enum  {
  PIXEL_CONVERT_SHIFT = 16, PIXEL_FORMAT_MASK = 0x0000ffff, PIXEL_CONVERT_MASK = 0xffff0000, PIXEL_RGB = 1,
  PIXEL_BGR = (1 << 1), PIXEL_GRAY = (1 << 2), PIXEL_RGBA = (1 << 3), PIXEL_RGB2BGR = PIXEL_RGB | (PIXEL_BGR << PIXEL_CONVERT_SHIFT),
  PIXEL_RGB2GRAY = PIXEL_RGB | (PIXEL_GRAY << PIXEL_CONVERT_SHIFT), PIXEL_BGR2RGB = PIXEL_BGR | (PIXEL_RGB << PIXEL_CONVERT_SHIFT), PIXEL_BGR2GRAY = PIXEL_BGR | (PIXEL_GRAY << PIXEL_CONVERT_SHIFT), PIXEL_GRAY2RGB = PIXEL_GRAY | (PIXEL_RGB << PIXEL_CONVERT_SHIFT),
  PIXEL_GRAY2BGR = PIXEL_GRAY | (PIXEL_BGR << PIXEL_CONVERT_SHIFT), PIXEL_RGBA2RGB = PIXEL_RGBA | (PIXEL_RGB << PIXEL_CONVERT_SHIFT), PIXEL_RGBA2BGR = PIXEL_RGBA | (PIXEL_BGR << PIXEL_CONVERT_SHIFT), PIXEL_RGBA2GRAY = PIXEL_RGBA | (PIXEL_GRAY << PIXEL_CONVERT_SHIFT)
}
 

Public 成员函数

 Mat ()
 
 Mat (int w, size_t elemsize=4u, Allocator *allocator=0)
 
 Mat (int w, int h, size_t elemsize=4u, Allocator *allocator=0)
 
 Mat (int w, int h, int c, size_t elemsize=4u, Allocator *allocator=0)
 
 Mat (const Mat &m)
 
 Mat (int w, void *data, size_t elemsize=4u, Allocator *allocator=0)
 
 Mat (int w, int h, void *data, size_t elemsize=4u, Allocator *allocator=0)
 
 Mat (int w, int h, int c, void *data, size_t elemsize=4u, Allocator *allocator=0)
 
Matoperator= (const Mat &m)
 
void fill (float v)
 
void fill (int v)
 
template<typename T >
void fill (T v)
 
Mat clone (Allocator *allocator=0) const
 
Mat reshape (int w, Allocator *allocator=0) const
 
Mat reshape (int w, int h, Allocator *allocator=0) const
 
Mat reshape (int w, int h, int c, Allocator *allocator=0) const
 
void create (int w, size_t elemsize=4u, Allocator *allocator=0)
 
void create (int w, int h, size_t elemsize=4u, Allocator *allocator=0)
 
void create (int w, int h, int c, size_t elemsize=4u, Allocator *allocator=0)
 
void addref ()
 
void release ()
 
bool empty () const
 
size_t total () const
 
Mat channel (int c)
 
const Mat channel (int c) const
 
float * row (int y)
 
const float * row (int y) const
 
template<typename T >
T * row (int y)
 
template<typename T >
const T * row (int y) const
 
Mat channel_range (int c, int channels)
 
const Mat channel_range (int c, int channels) const
 
Mat row_range (int y, int rows)
 
const Mat row_range (int y, int rows) const
 
Mat range (int x, int n)
 
const Mat range (int x, int n) const
 
template<typename T >
 operator T * ()
 
template<typename T >
 operator const T * () const
 
float & operator[] (int i)
 
const float & operator[] (int i) const
 
void to_pixels (unsigned char *pixels, int type) const
 
void to_pixels_resize (unsigned char *pixels, int type, int target_width, int target_height) const
 
void substract_mean_normalize (const float *mean_vals, const float *norm_vals)
 

静态 Public 成员函数

static Mat from_pixels (const unsigned char *pixels, int type, int w, int h, Allocator *allocator=0)
 
static Mat from_pixels_resize (const unsigned char *pixels, int type, int w, int h, int target_width, int target_height, Allocator *allocator=0)
 
static Mat from_float16 (const unsigned short *data, int size)
 
static void draw_circle (Mat &im, int x0, int y0, int radius, float r, float g, float b)
 
static void draw_circle_thickness (Mat &im, int x0, int y0, int radius, int width, float r, float g, float b)
 
static void draw_line (Mat &im, Point start, Point end, float r, float g, float b)
 
static void draw_box_grayscale (Mat &im, int x1, int y1, int x2, int y2, float g)
 
static void draw_box (Mat &im, int x1, int y1, int x2, int y2, float r, float g, float b)
 
static void draw_bbox (Mat &im, Box bbox, float r, float g, float b)
 
static void draw_bbox_width (Mat &im, Box bbox, int width, float r, float g, float b)
 
static void flip_mat (Mat &input)
 

Public 属性

void * data
 
int * refcount
 
size_t elemsize
 
Allocatorallocator
 
int dims
 
int w
 
int h
 
int c
 
size_t cstep
 

详细描述

dface内置的图像数据 dface的所有接口只支持dface::Mat(RGB格式)

成员枚举类型说明

anonymous enum

颜色空间转变枚举

枚举值
PIXEL_RGB 

RGB输入

PIXEL_BGR 

BGR输入

PIXEL_GRAY 

灰度输入

PIXEL_RGBA 

RGBA输入

PIXEL_RGB2BGR 

RGB转BGR

PIXEL_RGB2GRAY 

RGB转灰度

PIXEL_BGR2RGB 

BGR转RGB

PIXEL_BGR2GRAY 

BGR转灰度

PIXEL_GRAY2RGB 

灰度转RGB

PIXEL_GRAY2BGR 

灰度转BGR

PIXEL_RGBA2RGB 

RGBA转RGB

PIXEL_RGBA2BGR 

RGBA转BGR

PIXEL_RGBA2GRAY 

RGBA转灰度

构造及析构函数说明

dface::Mat::Mat ( )
inline

构造函数

参数
[in]w图像宽
[in]elemsize每个元素占的内存空间大小(默认4字节)
[in]allocator内存管理器(默认无)
注解
(RGB占3个元素)
dface::Mat::Mat ( int  w,
size_t  elemsize = 4u,
Allocator allocator = 0 
)
inline

构造函数

参数
[in]w图像宽
[in]elemsize每个像素占的内存空间大小(默认4字节) element size in bytes
4 = float32/int32
2 = float16
1 = int8/uint8
0 = empty
[in]allocator内存管理器(默认无)
注解
(RGB占3个元素)
dface::Mat::Mat ( int  w,
int  h,
size_t  elemsize = 4u,
Allocator allocator = 0 
)
inline

构造函数

参数
[in]w图像宽
[in]h图像高
[in]elemsize每个像素占的内存空间大小(默认4字节) element size in bytes
4 = float32/int32
2 = float16
1 = int8/uint8
0 = empty
[in]allocator内存管理器(默认无)
注解
(RGB占3个元素)
dface::Mat::Mat ( int  w,
int  h,
int  c,
size_t  elemsize = 4u,
Allocator allocator = 0 
)
inline

构造函数

参数
[in]w图像宽
[in]h图像高
[in]c图像通道数(RGB通道数为3,RGBA通道数为4)
[in]elemsize每个像素占的内存空间大小(默认4字节) element size in bytes
4 = float32/int32
2 = float16
1 = int8/uint8
0 = empty
[in]allocator内存管理器(默认无)
注解
()
dface::Mat::Mat ( const Mat m)
inline

拷贝构造函数

参数
[in]m被拷贝的mat
注解
()
dface::Mat::Mat ( int  w,
void *  data,
size_t  elemsize = 4u,
Allocator allocator = 0 
)
inline

直接从内存中构造mat

参数
[in]w图像宽
[in]data内存数据指针
注解
()
dface::Mat::Mat ( int  w,
int  h,
void *  data,
size_t  elemsize = 4u,
Allocator allocator = 0 
)
inline

直接从内存中构造mat

参数
[in]w图像宽
[in]w图像高
[in]data内存数据指针
[in]elemsize每个像素占的内存空间大小(默认4字节) element size in bytes
4 = float32/int32
2 = float16
1 = int8/uint8
0 = empty
注解
()
dface::Mat::Mat ( int  w,
int  h,
int  c,
void *  data,
size_t  elemsize = 4u,
Allocator allocator = 0 
)
inline

直接从内存中构造mat

参数
[in]w图像宽
[in]w图像高
[in]c图像通道数(RGB通道数为3,RGBA通道数为4)
[in]data内存数据指针
[in]elemsize每个像素占的内存空间大小(默认4字节) element size in bytes
4 = float32/int32
2 = float16
1 = int8/uint8
0 = empty
注解
()

成员函数说明

Mat dface::Mat::clone ( Allocator allocator = 0) const
inline

深度拷贝mat,包括内存数据的拷贝

注解
()
void dface::Mat::create ( int  w,
int  h,
size_t  elemsize = 4u,
Allocator allocator = 0 
)
inline

创建空mat

参数
[in]w图像宽
[in]w图像高
注解
()
void dface::Mat::create ( int  w,
int  h,
int  c,
size_t  elemsize = 4u,
Allocator allocator = 0 
)
inline

创建空mat

参数
[in]w图像宽
[in]w图像高
[in]c图像通道数(RGB通道数为3,RGBA通道数为4)
注解
()
static void dface::Mat::draw_bbox ( Mat im,
Box  bbox,
float  r,
float  g,
float  b 
)
static

画矩形

参数
[in]im图像mat
[in]bboxBox边框信息
[in]r红颜色值
[in]g绿颜色值
[in]b蓝颜色值
注解
()
static void dface::Mat::draw_bbox_width ( Mat im,
Box  bbox,
int  width,
float  r,
float  g,
float  b 
)
static

画矩形

参数
[in]im图像mat
[in]bboxBox边框信息
[in]width线宽
[in]r红颜色值
[in]g绿颜色值
[in]b蓝颜色值
注解
()
static void dface::Mat::draw_box ( Mat im,
int  x1,
int  y1,
int  x2,
int  y2,
float  r,
float  g,
float  b 
)
static

画矩形

参数
[in]im图像mat
[in]x1左上角x坐标
[in]y1左上角y坐标
[in]x2右下角x坐标
[in]y2右下角y坐标
[in]r红颜色值
[in]g绿颜色值
[in]b蓝颜色值
注解
()
static void dface::Mat::draw_box_grayscale ( Mat im,
int  x1,
int  y1,
int  x2,
int  y2,
float  g 
)
static

画矩形

参数
[in]im图像mat
[in]x1左上角x坐标
[in]y1左上角y坐标
[in]x2右下角x坐标
[in]y2右下角y坐标
[in]g颜色值
注解
()
static void dface::Mat::draw_circle ( Mat im,
int  x0,
int  y0,
int  radius,
float  r,
float  g,
float  b 
)
static

画圈

参数
[in]im图像mat
[in]x0x坐标
[in]y0y 坐标
[in]radius半径
[in]r红颜色值
[in]g绿颜色值
[in]g蓝颜色值
注解
()
static void dface::Mat::draw_circle_thickness ( Mat im,
int  x0,
int  y0,
int  radius,
int  width,
float  r,
float  g,
float  b 
)
static

画圈

参数
[in]im图像mat
[in]x0x坐标
[in]y0y 坐标
[in]radius半径
[in]width线宽
[in]r红颜色值
[in]g绿颜色值
[in]b蓝颜色值
注解
()
static void dface::Mat::draw_line ( Mat im,
Point  start,
Point  end,
float  r,
float  g,
float  b 
)
static

画线

参数
[in]im图像mat
[in]start起点
[in]end终点
[in]r红颜色值
[in]g绿颜色值
[in]b蓝颜色值
注解
()
bool dface::Mat::empty ( ) const
inline

是否为空mat

注解
()
static void dface::Mat::flip_mat ( Mat input)
static

图片作用翻转

参数
[in]input图像mat
注解
()
static Mat dface::Mat::from_float16 ( const unsigned short *  data,
int  size 
)
static

读取16位图

参数
[in]data16位图的二进制数组
[in]size尺寸
注解
()
Mat dface::Mat::from_pixels ( const unsigned char *  pixels,
int  type,
int  w,
int  h,
Allocator allocator = 0 
)
inlinestatic

读取图像二进制字节数组,生成dface::Mat数据(DFace C++所有接口只支持RGB格式的dface::Mat格式)

参数
[in]type图像转化格式(PIXEL_RGB, PIXEL_BGR, PIXEL_RGBA, PIXEL_RGB2BGR, PIXEL_RGBA2BGR...)
PIXEL_RGB:以RGB格式读取
PIXEL_BGR:BGR格式读取
PIXEL_RGBA:以RGBA格式读取
PIXEL_RGB2BGR:以RGB格式读取并转化为BGR格式 等..
其他依次类推,具体可查看 include/dface/Mat.h
[in]w图像宽
[in]w图像高
注解
()
Mat dface::Mat::from_pixels_resize ( const unsigned char *  pixels,
int  type,
int  w,
int  h,
int  target_width,
int  target_height,
Allocator allocator = 0 
)
inlinestatic

读取图像二进制字节数组,生成指定尺寸的dface::Mat数据(DFace C++所有接口只支持RGB格式的dface::Mat格式)

参数
[in]type图像转化格式(PIXEL_RGB, PIXEL_BGR, PIXEL_RGBA, PIXEL_RGB2BGR, PIXEL_RGBA2BGR...)
PIXEL_RGB:以RGB格式读取
PIXEL_BGR:BGR格式读取
PIXEL_RGBA:以RGBA格式读取
PIXEL_RGB2BGR:以RGB格式读取并转化为BGR格式 等..
其他依次类推,具体可查看 include/dface/Mat.h
[in]w图像宽
[in]w图像高
[in]target_width指定尺寸的宽
[in]target_height指定尺寸的高
注解
()
Mat & dface::Mat::operator= ( const Mat m)
inline

赋值重载

注解
()
void dface::Mat::release ( )
inline

释放mat,释放mat所占的内存空间

注解
()
Mat dface::Mat::reshape ( int  w,
int  h,
int  c,
Allocator allocator = 0 
) const
inline

改变mat数据结构(shape)

参数
[in]w图像宽
[in]w图像高
[in]w图像通道数(RGB通道数为3,RGBA通道数为4)
注解
()
void dface::Mat::to_pixels ( unsigned char *  pixels,
int  type 
) const
inline

dface::Mat转成图像二进制字节数组

参数
[in]type图像转化格式(PIXEL_RGB, PIXEL_BGR, PIXEL_RGBA, PIXEL_RGB2BGR, PIXEL_RGBA2BGR...)
PIXEL_RGB:以RGB格式读取
PIXEL_BGR:BGR格式读取
PIXEL_RGBA:以RGBA格式读取
PIXEL_RGB2BGR:以RGB格式读取并转化为BGR格式 等..
其他依次类推,具体可查看 include/dface/Mat.h
注解
()
void dface::Mat::to_pixels_resize ( unsigned char *  pixels,
int  type,
int  target_width,
int  target_height 
) const
inline

dface::Mat转成指定尺寸的图像二进制字节数组

参数
[in]type图像转化格式(PIXEL_RGB, PIXEL_BGR, PIXEL_RGBA, PIXEL_RGB2BGR, PIXEL_RGBA2BGR...)
PIXEL_RGB:以RGB格式读取
PIXEL_BGR:BGR格式读取
PIXEL_RGBA:以RGBA格式读取
PIXEL_RGB2BGR:以RGB格式读取并转化为BGR格式 等..
其他依次类推,具体可查看 include/dface/Mat.h
[in]target_width指定尺寸的宽
[in]target_height指定尺寸的高
注解
()

类成员变量说明

void* dface::Mat::data

内存数据指针


该类的文档由以下文件生成: