OpenCV学习之路
2018-04-27 本文已影响0人
TocomPass
操作图像
一个包含彩色图像的cvMat会返回一个由三个8bits数组成的向量,Opencv将此类向量定义为cv::Vec3b,即由三个unsigned char组成的向量,存取代码形式:
image.at<cv::Vec3b>(j,i)[channel] = value
In-place方法:即用修改过后的图像来代替原图像。
ptr模板函数返回行地址
为了适应某些图像处理器,行尾会添加一些额外的像素。用isContinuous来判断是否对行进行了填补。
图像遍历
图像遍历的时候效率非常关键,除了保证准确性的迭代器遍历法以外,其他方法要尽量提高效率,使用位运算mask方法是最快的,同时应该尽量减少循环的次数。
邻域操作
saturate_cast模板函数用来截断数据
ROI
Range函数左闭右开
颜色空间
RGB颜色空间并不是一个在感知上均匀分布的色彩空间;
CIE Lab*是一个感知上均匀分布的色彩空间,图像像素与目标色之间的欧拉距离可以较为确切地描述出颜色的相似性
Mat
采用了引用计数机制,拷贝构造函数只复制信息头和矩阵指针,不会复制矩阵。
如果矩阵属于多个 Mat 对象,由最后一个引用此矩阵的的对象来管理,无论什么时候有人拷贝了一个 Mat 对象的信息头,都会增加矩阵的引用次数;反之当一个头被释放之后,这个计数被减一;当计数值为零,矩阵会被清理。但某些时候你仍会想拷贝矩阵本身(不只是信息头和矩阵指针),这时可以使用函数 clone()和copyTo().