【OpenCV入门教程之五】 分离颜色通道 多通道图像混合

本文介绍了OpenCV中的split和merge函数,用于分离和合并颜色通道。详细讲解了这两个函数的使用方法,并通过示例程序演示了如何进行多通道图像混合。此外,还提供了配套的源代码下载链接。
摘要由CSDN通过智能技术生成

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               


 本系列文章由@浅墨_毛星云 出品,转载请注明出处。  

 文章链接: http://blog.csdn.net/poem_qianmo/article/details/21176257

 作者:毛星云(浅墨)    邮箱: happylifemxy@163.com 

 写作当前博文时配套使用的OpenCV版本: 2.4.8



上篇文章中我们讲到了使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像混合操作。

而为了更好的观察一些图像材料的特征,有时需要对RGB三个颜色通道的分量进行分别显示和调整。通过OpenCV的split和merge方法可以很方便的达到目的。

这就是我们这篇文章的主要内容。依然是先看一张截图吧:



 

一、分离颜色通道



就让我们来详细介绍一下这两个互为冤家的函数。首先是进行通道分离的split函数。



<1>split函数详解


将一个多通道数组分离成几个单通道数组。ps:这里的array按语境译为数组或者阵列。

 

这个split函数的C++版本有两个原型,他们分别是:

 

C++: void split(const Mat& src, Mat*mvbegin);C++: void split(InputArray m,OutputArrayOfArrays mv);


关于变量介绍:

 

  • 第一个参数,InputArray类型的m或者const Mat&类型的src,填我们需要进行分离的多通道数组。
  • 第二个参数,OutputArrayOfArrays类型的mv,填函数的输出数组或者输出的vector容器。

 

 

就如上一节中讲到方法一样,这里的OutputArrayOfArrays我们通过【转到定义】大法,可以查到它是_OutputArray的引用,那么我们在源代码中再次通过【转到定义】看到_OutputArray类的原型,即是OutputArrayOfArrays的原型:

 

class CV_EXPORTS _OutputArray : public_InputArray{
    public:   _OutputArray();    _OutputArray(Mat& m);   template<typename _Tp> _OutputArray(vector<_Tp>& vec);   template<typename _Tp> _OutputArray(vector<vector<_Tp>>& vec);   _OutputArray(vector<Mat>& vec);   template<typename _Tp> _OutputArray(vector<Mat_<_Tp>>& vec);   template<typename _Tp> _OutputArray(Mat_<_Tp>& m);   template<typename _Tp, int m, int n> _OutputArray(Matx<_Tp, m,n>& matx);   template<typename _Tp> _OutputArray(_Tp* vec, int n);   _OutputArray(gpu::GpuMat& d_mat);   _OutputArray(ogl::Buffer& buf);   _OutputArray(ogl::Texture2D& tex);     _OutputArray(constMat& m);   template<typename _Tp> _OutputArray(const vector<_Tp>&vec);   template<typename _Tp> _OutputArray(constvector<vector<_Tp> >& vec);   _OutputArray(const vector<Mat>& vec);   template<typename _Tp> _OutputArray(const vector<Mat_<_Tp>>& vec);   template<typename _Tp> _OutputArray(const Mat_<_Tp>& m);   template<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值