OPENCV的cvtColor和putText的讲解
一.cvtColor的用处和API讲解
1.cvtColor的作用
cvtColor是OPENCV里面颜色转换的转换函数,它的功能非常强大。能够实现RGB图像转换成灰度图、灰度图转换成RGB图像、RGB转换成HSV等等。下面我们来看看
2.cvtColor的API
CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 );
第一个参数:输入的图像数据
第二个参数:输出的图像数据
第三个参数:颜色转换的标识符,下面是转换的图表。图像转化可以分为11个大类,分别是RGB->BGR、RGB->5X5、 RGB->GRAY、RGB->CIEXYZ、RGB->YyCrcb(YUV)、RGB->HSV、RGB->HLS、RGB->CIELab、RGB->CIELuv、RGB->Bayer、YUV420->RGB。
第四个参数:目标图像通道数,默认为0
二.用代码实现cvtColor的颜色转换功能
这次代码主要是转换几个常见的格式,如RGB->YUV, YUV->RGB。具体的代码思路如下:
这个代码里面我们分别读取两种图片,一种是RGB图片、另外一种是YUV灰度图像、分别用cvtColor把RGB图像转换成YUV图像、把YUV灰度图像转换成RGB图像、最后用imwrite保存两种图片。
三.putText的用处和API讲解
1. putText的用法和作用
putText是OPENCV中常见的功能,他主要的功能是在Mat矩阵里面显示显示文字,像下图
从上图可以看出来putText是通过坐标(X,Y)在矩阵显示文字
2. putText的API
CV_EXPORTS_W void putText( InputOutputArray img, const String& text,Point org,int fontFace, double fontScale, Scalar color,int thickness = 1, int lineType = LINE_8,bool bottomLeftOrigin = false );
第一个参数:img需要传入的图像数据
第二个参数:text需要显示的文字
第三个参数:org文字在图像数据中的坐标位置
第四个参数:fontFace字体类型,常用的字体类型如下:
FONT_HERSHEY_SIMPLEX,
FONT_HERSHEY_PLAIN,
FONT_HERSHEY_DUPLEX,
FONT_HERSHEY_COMPLEX,
FONT_HERSHEY_TRIPLEX,
FONT_HERSHEY_COMPLEX_SMALL,
FONT_HERSHEY_SCRIPT_SIMPLEX,
orFONT_HERSHEY_SCRIPT_COMPLEX,
以上所有类型都可以配合 FONT_HERSHEY_ITALIC使用,产生斜体效果
第五个参数:fontScale字体的大小
第六个参数:color是颜色标量,字体的显示颜色
第七个参数:thickness是字体的粗细程度,默认为1
第八个参数:lineType线性,默认是LINE_8,具体的几个如下:
第九个参数:bottomLeftOrigin图像数据原点在左下角, Otherwise(默认false)图像数据中原点的左上角。默认bottomLeftOrigin = false