opencv中cvCvtColor函数在哪个库

 我来答
2010132046
2019-01-21
知道答主
回答量:37
采纳率:0%
帮助的人:6.8万
展开全部

下载opencv source,RGB2Gray部分源码在opencv-4.0.1\modules\imgproc\src\color_rgb.cpp文件中,如下:

template<typename _Tp> struct RGB2Gray
{    
    typedef _Tp channel_type;
    RGB2Gray(int _srccn, int blueIdx, const float* _coeffs) : srccn(_srccn)    
    {        
    static const float coeffs0[] = { R2YF, G2YF, B2YF };        
    memcpy( coeffs, _coeffs ? _coeffs : coeffs0, 3*sizeof(coeffs[0]) );        
    if(blueIdx == 0)            
        std::swap(coeffs[0], coeffs[2]);    }
    void operator()(const _Tp* src, _Tp* dst, int n) const    
    {        
        int scn = srccn;        
        float cb = coeffs[0], cg = coeffs[1], cr = coeffs[2];        
        for(int i = 0; i < n; i++, src += scn)            
            dst[i] = saturate_cast<_Tp>(src[0]*cb + src[1]*cg + src[2]*cr);        }    
            int srccn;    
            float coeffs[3];
 };

其中YF, G2YF, B2YF定义在文件color.hpp中,代码如下:

//constants for conversion from/to RGB and Gray, YUV, YCrCb according to BT.601
const float B2YF = 0.114f;
const float G2YF = 0.587f;
const float R2YF = 0.299f;
匿名用户
2017-06-07
展开全部
cvCvtColor(...),是Opencv里的颜色空间转换函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巨蟹x暴龙x
2017-06-07 · TA获得超过548个赞
知道答主
回答量:542
采纳率:100%
帮助的人:132万
展开全部
cvCvtColor(...),Opencv颜色空间转换函数实现RGB颜色向HSV,HSI等颜色空间转换转换灰度图像
参数CV_RGB2GRAYRGBgray
具体用线性灰度变换函数:
Gray=0.299*R+0.587*G+0.144*B

通查看OpenCVdocumentation或者源代码解具体实现
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式