基于OpenCV的数字图像处理技术大大提升了视觉开发的效率,在各种处理技术的实现上,诸如:图像增强、图像分割、图像编码与压缩等,都要使用到C++语言中的Mat类及其类函数,本文就OpenCV中Mat类中的常用类函数进行了总结,便于日后学习与运用。
bool CvImage::CvImage();
bool CvImage::CvImage(CvSize size, int depth, int channels);
bool CvImage::CvImage(IplImage* pIplImg);
bool CvImage::CvImage(const CvImage& cvImg);
bool CvImage::CvImage(const char* filename, const char* imgname=0, int color=-1);
bool CvImage::CvImage(CvFileStorage* fs, const char* mapname, const char* imgname);
bool CvImage::CvImage(CvFileStorage* fs, const char* seqname, int idx);
默认构造函数,创建一个图像。影象对应的数据在析构的时候自动被释放。
size -图像大小
depth- 像素深度
channels- 通道数
IplImage结构影象
CvImage - 对象的引用
filename- 文件名字
imgname- 图片的别名
seqname 存储队列的名字
idx 数据存储中的索引
CvImage::~CvImage();
析构函数。
CvImage CvImage::clone(); //生成当前影象的一个copy。
void CvImage::create(CvSize size, int depth, int channels); //创建一个影象。
size-图像大小
depth-像素深度
channels-通道数
void CvImage::release(); //释放一个打开的影象。
void CvImage::clear();
释放一个打开的影象。和release功能相同。
void CvImage::attach(IplImage* img, bool use_refcount=true);
//将一个影象和当前对象绑定。如果使用引用计数,则引用计数增加1。 当引用计数减少到0的时候释放img对应的内存。
img-图像数据
use_refcount-是否使用引用计数
void CvImage::detach();
取消当前对象绑定的数据。如果使用引用计数,则引用计数减少1。 当引用计数减少到0的时候释放img对应的内存。
bool CvImage::load(const char* filename, const char* imgname=0, int color=-1);
暂无。
bool CvImage::read(CvFileStorage* fs, const char* mapname, const char* imgname );
bool CvImage::read(CvFileStorage* fs, const char* seqname, int idx);
暂无。
void CvImage::save(const char* filename, const char* imgname);
暂无。
void CvImage::write(CvFileStorage* fs, const char* imgname);
void CvImage::show(const char* window_name);
在指定窗口中显示图像。
window_name
窗口的名字。
bool CvImage::is_valid();
当前对象是否已经帮定了有效的影象。是返回true,否返回false。
int CvImage::width()const;
//返回影象的宽度。没有影象的话返回0。
int CvImage::height()const;
返回影象的高度。没有影象的话返回0。
CvSize CvImage::size()const;
返回影象的尺寸。没有影象的话返回cvSize(0,0)。
CvSize CvImage::roi_size()const;
返回影象的ROI区域大小。没有影象的话返回cvSize(0,0)。
CvRect CvImage::roi()const;
返回影象的ROI区域。没有影象的话返回cvRect(0,0,0,0)。
int CvImage::coi()const;
返回影象的COI。没有影象的话返回0。
void CvImage::set_roi(CvRect roi);
设置影象的ROI。
roi
ROI区域。
void CvImage::reset_roi();
重置影象的ROI。
void CvImage::set_coi();
返回影象的COI。
int CvImage::depth();
返回像素的深度。没有影象的话返回0。
int CvImage::channels();
返回影象通道数。没有影象的话返回0。
int CvImage::pix_size();
返回影象像素的大小。值等于像素深度乘以通道数。
uchar* CvImage::data();
const uchar* CvImage::data()const;
获取对应对应的影象数据地址。没有影象的话返回NULL。
int CvImage::step()const;
返回IplImage::widthStep,没有影象的话返回0。
int CvImage::origin()const;
返回影象结构。0-顶—左结构,1-底—左结构 (Windows bitmaps 风格)。
uchar* CvImage::roi_row(int y);
const uchar* CvImage::roi_row(int y)const;
返回第y行数据。没有影象的话返回NULL。
y
影象行数。
operator const IplImage* ();
operator IplImage* ();
CvImage& operator=(const CvImage& img);