颜色空间转换:cvtColor()
C++:
void cvtColor(InputArray src, OutputArray dst, intcode, int dstCn = 0);
(1)第一个参数:输入图像
(2)第二个参数:输出图像
(3)第三个参数:颜色空间转换的标识符(具体见下表)
(4)第四个参数:目标图像的通道数,若该参数为0,表示目标图像取源图像的通道数。
cvtColor()函数可以实现RGB颜色向HSV、HSI等颜色空间转换,也可以转换为灰度图像。
示例:
cvtColor(srcImage,dstImage, COLOR_GRAY2BGR); //转换原始图为灰度图
OpenCV2的CV_前缀的宏命名规范,被OpenCV3中的COLOR_式的宏命名前缀所取代。
threshold ():
通过遍历灰度图中点,将图像信息二值化,处理过后的图片只有二种色值。
其函数原型如下:
doublethreshold(InputArray src, OutputArray dst, double thresh, double maxval, inttype)
参数信息:
(1)第一个参数,InputArray类型的src,输入数组,填单通道 , 8或32位浮点类型的Mat即可。
(2)第二个参数,OutputArray类型的dst,函数调用后的运算结果存在这里,即这个参数用于存放输出结果,且和第一个参数中的Mat变量有一样的尺寸和类型。
(3)第三个参数,double类型的thresh,阈值的具体值。
(4)第四个参数,double类型的maxval,当第五个参数阈值类型type取 THRESH_BINARY 或THRESH_BINARY_INV阈值类型时的最大值.
(5)第五个参数,int类型的type,阈值类型,。
其它参数很好理解,我们来看看第五个参数,第五参数有以下几种类型
0: THRESH_BINARY(二进制阈值) 当前点值大于阈值时,取Maxval(即第四个参数),否则设置为0
1:THRESH_BINARY_INV(反二进制阈值)当前点值大于阈值时,设置为0,否则设置为Maxval
2:THRESH_TRUNC (截断阈值)当前点值大于阈值时,设置为阈值,否则不改变
3:THRESH_TOZERO (阈值化为0)当前点值大于阈值时,不改变,否则设置为0
getRectSubPix函数
函数作用:
从原图像中提取提取一个感兴趣的矩形区域图像
函数调用形式:
C++: void getRectSubPix(InputArray image,Size patchSize, Point2f center, OutputArray patch,int patchType=-1 )
参数理解:
InputArray image:输入图像
Size patchSize:获取矩形的大小
Point2f center:获取的矩形在原图像中的位置
OutputArray patch:表示输出的图像
int patchType=-1 :表示输出图像的深度