opencv之cvtColor()函数
概述
opencv使用cvtColor()函数对图像进行色彩空间的转换。
API说明
C++ API如下表所示:
void cv::cvtColor | ( | InputArray | src, | (原始图像,格式:8-bit unsigned / 16-bit unsigned / single-precision floating-point) |
---|---|---|---|---|
OutputArray | dst, | (目标图像:size与depth和原始图像要相等) | ||
int | code, | (色彩空间转换码)(ColorConversionCodes) | ||
int |
dstCn=0
|
(目标图像的通道数,此参数为0时,目标图像的通道数由原始图像自动生成) | ||
) |
python API如下表所示:
dst | = | cv.cvtColor( | src, code[, dst[, dstCn]] | ) |
---|
功能说明
- 将输入图像从一个色彩空间转换到另一个色彩空间。
- 在处理RGB图像时要注意色彩通道的顺序(RGB或BGR)。
- opencv中的默认色彩空间实际是BGR,但是常常以RGB提及。
- 对于一个24位标准彩色图像而言,1个像素对应3个字节(8位),每个字节依次对应B,G和R分量。
R,G,和B分量的取值范围一般如下:
- 对于CV_8U 图像:0 到 255
- 对于CV_16U 图像:0 到 65535
- 对于CV_32F 图像:0 到 1
- 对于线性变换,该取值范围 不重要。
- 对于非线性变换,输入的rgb图像应当先归一化到正确的取值范围,从而得到正确的结果。
- 例如:RGB → L*u*v*,输入图像:8-bit image,目标图像:32-bit floating-point image,在调用 cvtColor()函数之前,应当将输入图像的分量的取值范围从0~255缩到0~1:
img *= 1./255;
cvtColor(img, img, COLOR_BGR2Luv);
如果对8-bit images使用cvtColor()函数,转换会丢失部分信息,一般不明显。推荐先将图像转换成32-bit images,再进行色彩空间转换,最后再把图像转换成8-bit images。
- 如果转换后添加了透明通道,其值会被设置为对应通道取值范围的最大值(255 for CV_8U, 65535 for CV_16U, 1 for CV_32F)。
官网说明
Color conversions
官网样例
camshiftdemo.cpp
ffilldemo.cpp, hog.cpp
houghcircles.cpp
houghlines.cpp
lkdemo.cpp
Sobel_Demo.cpp
train_HOG.cpp
watershed.cpp.
附录一:色彩空间转换代码表
转换代码 | 转换说明 |
---|---|
COLOR_BGR2BGRA | add alpha channel to RGB or BGR image |
COLOR_RGB2RGBA | |
COLOR_BGRA2BGR | remove alpha channel from RGB or BGR image |
COLOR_RGBA2RGB | |
COLOR_BGR2RGBA | convert between RGB and BGR colorspaces(with or without alpha channel) |
COLOR_RGB2BGRA | |
COLOR_RGBA2BGR | |
COLOR_BGRA2RGB | |
COLOR_BGR2RGB | |
COLOR_RGB2BGR | |
COLOR_BGRA2RGBA | |
COLOR_RGBA2BGRA | |
COLOR_BGR2GRAY | convert between RGB/BGR and grayscale,官网代码样例 |
COLOR_RGB2GRAY | |
COLOR_GRAY2BGR | |
COLOR_GRAY2RGB | |
COLOR_GRAY2BGRA | |
COLOR_GRAY2RGBA | |
COLOR_BGRA2GRAY | |
COLOR_RGBA2GRAY | |
COLOR_BGR2BGR565 | convert between RGB/BGR and BGR565(16-bit images) |
COLOR_RGB2BGR565 | |
COLOR_BGR5652BGR | |
COLOR_BGR5652RGB | |
COLOR_BGRA2BGR565 | |
COLOR_RGBA2BGR565 | |
COLOR_BGR5652BGRA | |
COLOR_BGR5652RGBA | |
COLOR_GRAY2BGR565 | convert between grayscale and BGR565(16-bit images) |
COLOR_BGR5652GRAY | |
COLOR_BGR2BGR555 | convert between RGB/BGR and BGR555(16-bit images) |
COLOR_RGB2BGR555 | |
COLOR_BGR5552BGR | |
COLOR_BGR5552RGB | |
COLOR_BGRA2BGR555 | |
COLOR_RGBA2BGR555 | |
COLOR_BGR5552BGRA | |
COLOR_BGR5552RGBA | |
COLOR_GRAY2BGR555 | convert between grayscale and BGR555(16-bit images) |
COLOR_BGR5552GRAY | |
COLOR_BGR2XYZ | convert RGB/BGR to CIEXYZ,官网代码样例 |
COLOR_RGB2XYZ | |
COLOR_XYZ2BGR | |
COLOR_XYZ2RGB | |
COLOR_BGR2YCrCb | convert RGB/BGR to luma-chroma(akaYCC),官网代码样例 |
COLOR_RGB2YCrCb | |
COLOR_YCrCb2BGR | |
COLOR_YCrCb2RGB | |
COLOR_BGR2HSV | convert RGB/BGR to HSV(hue saturation value),官网代码样例 |
COLOR_RGB2HSV | |
COLOR_BGR2Lab | convert RGB/BGR to CIELab,官网代码样例 |
COLOR_RGB2Lab | |
COLOR_BGR2Luv | convert RGB/BGR to CIELuv,官网代码样例 |
COLOR_RGB2Luv | |
COLOR_BGR2HLS | convert RGB/BGR to HLS(hue lightness saturation),官网代码样例 |
COLOR_RGB2HLS | |
COLOR_HSV2BGR | backward conversions to RGB/BGR |
COLOR_HSV2RGB | |
COLOR_Lab2BGR | |
COLOR_Lab2RGB | |
COLOR_Luv2BGR | |
COLOR_Luv2RGB | |
COLOR_HLS2BGR | |
COLOR_HLS2RGB | |
COLOR_BGR2HSV_FULL | |
COLOR_RGB2HSV_FULL | |
COLOR_BGR2HLS_FULL | |
COLOR_RGB2HLS_FULL | |
COLOR_HSV2BGR_FULL | |
COLOR_HSV2RGB_FULL | |
COLOR_HLS2BGR_FULL | |
COLOR_HLS2RGB_FULL | |
COLOR_LBGR2Lab | |
COLOR_LRGB2Lab | |
COLOR_LBGR2Luv | |
COLOR_LRGB2Luv | |
COLOR_Lab2LBGR | |
COLOR_Lab2LRGB | |
COLOR_Luv2LBGR | |
COLOR_Luv2LRGB | |
COLOR_BGR2YUV | convert between RGB/BGR and YUV |
COLOR_RGB2YUV | |
COLOR_YUV2BGR | |
COLOR_YUV2RGB | |
COLOR_YUV2RGB_NV12 | YUV4:2:0 family to RGB. |
COLOR_YUV2BGR_NV12 | |
COLOR_YUV2RGB_NV21 | |
COLOR_YUV2BGR_NV21 | |
COLOR_YUV420sp2RGB | |
COLOR_YUV420sp2BGR | |
COLOR_YUV2RGBA_NV12 | |
COLOR_YUV2BGRA_NV12 | |
COLOR_YUV2RGBA_NV21 | |
COLOR_YUV2BGRA_NV21 | |
COLOR_YUV420sp2RGBA | |
COLOR_YUV420sp2BGRA | |
COLOR_YUV2RGB_YV12 | |
COLOR_YUV2BGR_YV12 | |
COLOR_YUV2RGB_IYUV | |
COLOR_YUV2BGR_IYUV | |
COLOR_YUV2RGB_I420 | |
COLOR_YUV2BGR_I420 | |
COLOR_YUV420p2RGB | |
COLOR_YUV420p2BGR | |
COLOR_YUV2RGBA_YV12 | |
COLOR_YUV2BGRA_YV12 | |
COLOR_YUV2RGBA_IYUV | |
COLOR_YUV2BGRA_IYUV | |
COLOR_YUV2RGBA_I420 | |
COLOR_YUV2BGRA_I420 | |
COLOR_YUV420p2RGBA | |
COLOR_YUV420p2BGRA | |
COLOR_YUV2GRAY_420 | |
COLOR_YUV2GRAY_NV21 | |
COLOR_YUV2GRAY_NV12 | |
COLOR_YUV2GRAY_YV12 | |
COLOR_YUV2GRAY_IYUV | |
COLOR_YUV2GRAY_I420 | |
COLOR_YUV420sp2GRAY | |
COLOR_YUV420p2GRAY | |
COLOR_YUV2RGB_UYVY | YUV4:2:2 family to RGB. |
COLOR_YUV2BGR_UYVY | |
COLOR_YUV2RGB_Y422 | |
COLOR_YUV2BGR_Y422 | |
COLOR_YUV2RGB_UYNV | |
COLOR_YUV2BGR_UYNV | |
COLOR_YUV2RGBA_UYVY | |
COLOR_YUV2BGRA_UYVY | |
COLOR_YUV2RGBA_Y422 | |
COLOR_YUV2BGRA_Y422 | |
COLOR_YUV2RGBA_UYNV | |
COLOR_YUV2BGRA_UYNV | |
COLOR_YUV2RGB_YUY2 | |
COLOR_YUV2BGR_YUY2 | |
COLOR_YUV2RGB_YVYU | |
COLOR_YUV2BGR_YVYU | |
COLOR_YUV2RGB_YUYV | |
COLOR_YUV2BGR_YUYV | |
COLOR_YUV2RGB_YUNV | |
COLOR_YUV2BGR_YUNV | |
COLOR_YUV2RGBA_YUY2 | |
COLOR_YUV2BGRA_YUY2 | |
COLOR_YUV2RGBA_YVYU | |
COLOR_YUV2BGRA_YVYU | |
COLOR_YUV2RGBA_YUYV | |
COLOR_YUV2BGRA_YUYV | |
COLOR_YUV2RGBA_YUNV | |
COLOR_YUV2BGRA_YUNV | |
COLOR_YUV2GRAY_UYVY | |
COLOR_YUV2GRAY_YUY2 | |
COLOR_YUV2GRAY_Y422 | |
COLOR_YUV2GRAY_UYNV | |
COLOR_YUV2GRAY_YVYU | |
COLOR_YUV2GRAY_YUYV | |
COLOR_YUV2GRAY_YUNV | |
COLOR_RGBA2mRGBA | alpha premultiplication |
COLOR_mRGBA2RGBA | |
COLOR_RGB2YUV_I420 | RGB to YUV4:2:0 family. |
COLOR_BGR2YUV_I420 | |
COLOR_RGB2YUV_IYUV | |
COLOR_BGR2YUV_IYUV | |
COLOR_RGBA2YUV_I420 | |
COLOR_BGRA2YUV_I420 | |
COLOR_RGBA2YUV_IYUV | |
COLOR_BGRA2YUV_IYUV | |
COLOR_RGB2YUV_YV12 | |
COLOR_BGR2YUV_YV12 | |
COLOR_RGBA2YUV_YV12 | |
COLOR_BGRA2YUV_YV12 | |
COLOR_BayerBG2BGR | Demosaicing. |
COLOR_BayerGB2BGR | |
COLOR_BayerRG2BGR | |
COLOR_BayerGR2BGR | |
COLOR_BayerBG2RGB | |
COLOR_BayerGB2RGB | |
COLOR_BayerRG2RGB | |
COLOR_BayerGR2RGB | |
COLOR_BayerBG2GRAY | |
COLOR_BayerGB2GRAY | |
COLOR_BayerRG2GRAY | |
COLOR_BayerGR2GRAY | |
COLOR_BayerBG2BGR_VNG | Demosaicing using Variable Numberof Gradients. |
COLOR_BayerGB2BGR_VNG | |
COLOR_BayerRG2BGR_VNG | |
COLOR_BayerGR2BGR_VNG | |
COLOR_BayerBG2RGB_VNG | |
COLOR_BayerGB2RGB_VNG | |
COLOR_BayerRG2RGB_VNG | |
COLOR_BayerGR2RGB_VNG | |
COLOR_BayerBG2BGR_EA | Edge-Aware Demosaicing. |
COLOR_BayerGB2BGR_EA | |
COLOR_BayerRG2BGR_EA | |
COLOR_BayerGR2BGR_EA | |
COLOR_BayerBG2RGB_EA | |
COLOR_BayerGB2RGB_EA | |
COLOR_BayerRG2RGB_EA | |
COLOR_BayerGR2RGB_EA | |
COLOR_BayerBG2BGRA | Demosaicing with alpha channel. |
COLOR_BayerGB2BGRA | |
COLOR_BayerRG2BGRA | |
COLOR_BayerGR2BGRA | |
COLOR_BayerBG2RGBA | |
COLOR_BayerGB2RGBA | |
COLOR_BayerRG2RGBA | |
COLOR_BayerGR2RGBA | |
COLOR_COLORCVT_MAX |
opencv之cvtColor()函数相关推荐
- 关于opencv中cvtcolor函数的code参数用CV_BGR2YUV与CV_BGR2YCrCb的了解
根据Opencv中cvtcolor函数的源码描述,,参数CV_BGR2YCrCb用的系数为[1868, 9617, 4899, 11682, 9241], 而参数CV_BGR2YUV对应的系数只是将C ...
- opencv中cvtcolor()函数用法总结(07)
还是老习惯,分三步走.第一步,功能说明.第二步,结果图显示,第三步,API详解.第四步,代码展示(注释很详细,保证所有有C++基础的人都可以看懂.) 第一步,功能说明:cvtcolor()函数是一个颜 ...
- opencv的cvtColor函数Lab转RGB源码解析及结果截断处理解决
cvtColor( InputArray src, OutputArray dst, int code, int dstCn=0 ); 这是opencv中色彩转换函数.当由Lab转RGB时,code ...
- 学习opencv之cvtColor
opencv 提供了cvtColor()函数,用于在图像中不同的色彩空间进行转换,用于后续处理.在使用cvtColor之前首先需要了解下基本的图像色彩模式,色彩模式决定了打印或显示的图片颜色. 图像色 ...
- OpenCV代码提取:cvtColor函数的实现
OpenCV中的cvtColor函数包括了很多颜色格式之间的转换,用起来很方便,这里对cvtColor函数的code进行了提取,经测试,和OpenCV3.1结果完全一致. 实现代码cvtColor.h ...
- OpenCV的cv::cvtColor函数之“CV_RGB2GRAY”: 未声明的标识符错误解决方法
OpenCV 4.1,cv::cvtColor函数提示:"CV_RGB2GRAY": 未声明的标识符. 原因:缺少头文件opencv2/imgproc/types_c.h 解决:直 ...
- OpenCV颜色空间转换函数:cv::cvtColor介绍
OpenCV颜色空间转换函数:cv::cvtColor介绍 Color Conversion Code(颜色转换代码) Enumerator COLOR_BGR2BGRA add alpha chan ...
- 图像边缘检测--OpenCV之cvCanny函数
图像边缘检测--OpenCV之cvCanny函数 分类: C/C++ void cvCanny( const CvArr* image, CvArr* edges, double threshold1 ...
- 利用OpenCV的compareHist函数作直方图的相似度对比的源程序
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 OpenCV的compareHist函数用来计算 ...
- cvtColor函数
cvtColor函数 函数作用: 转换图像的颜色,彩色 灰度,HSV 等等 函数调用形式: C++:void cvtColor(InputArray src, OutputArray dst, int ...
最新文章
- Windows sever 2008
- 请教个问题,ajax.net 的效率如何
- iOS 字符串加密至MD5
- 对于SpringMVC框架使用的时候出现“警告: No mapping found for HTTP request with URI [/login]”的问题解决方案...
- 20145234黄斐《信息安全系统设计基础》第十周
- HALCON: 本地程序函数(.hdev或.dev)、HDevelop函数文件或外部函数(.hdvp)及库函数(.hdpl)使用详解
- matlab delay用法,请教Vensim中DELAY1I函数使用的单位设置
- 香港计算机mphil申请成功案例,送给各位,3个Mphil的申请总结(人文社科类)
- 使用驱动器中的光盘之前需要将其格式化怎么弄
- 中医针灸学综合练习题库【2】
- 会议安排问题(贪心算法)
- IE6 下 如何 画三角形 ! 方法
- SAP ABAP——内表(三)【工作区与表头】
- 读书笔记----10日摘抄整理(12)
- 驱动开发笔记1—内核中的事件、进程、线程、自旋锁
- 最好用的房屋租赁软件(租赁行业)
- 天梯赛L1级别80道题解
- 数据结构笔记(期末复习,持续更新)
- virtualpc2007 95/98系统驱动,虚拟工具,softice安装
- 人事管理java 课程设计_java课程设计人事管理系统
热门文章
- 【抓包】Xposed+JustTrustMe关闭SSL证书验证
- ae渲染出现错误是什么问题_怎样彻底检查根治AE导出失败,渲染影片出错问题...
- 【智能优化算法-MOEA_D】基于MOEA_D求解联合经济排放调度(CEED)问题附matlab代码
- stm32 代码加密
- Theano框架学习
- chrome 截长图功能
- amazeui验证遇到的坑
- 计算机03年word做母亲节贺卡,制作图文并茂的作品---用word制作母亲节贺卡PPT课件...
- pano2vr保存的html打不开,pano2VR输出文件打不开
- mysql +cobar_MySQL 中间件 cobar 初体验