step 1:  函数功能说明

      mixChannels主要就是把输入的矩阵(或矩阵数组)的某些通道拆分复制给对应的输出矩阵(或矩阵数组)的某些通道中,其中的对应关系就由fromTo参数制定.

step 2:  函数原型讲解

      C++:  void  mixChannels (const Mat*  src , int  nsrc , Mat*  dst , int  ndst , const int*  fromTo , size_t  npairs );

      src– Input array or vector of matrices. All the matrices must have the same size and the same depth.

          输入矩阵,可以为一个也可以为多个,但是矩阵必须有相同的大小和深度.

      nsrcs– Number of matrices in src.

          输入矩阵的个数。

      dst– Output array or vector of matrices. All the matrices must be allocated. Their size and depth must be the same as in src[0].

          输出矩阵,可以为一个也可以为多个,但是所有的矩阵必须事先分配空间(如用create),大小和深度须与输入矩阵等同.

      ndsts– Number of matrices in dst.

          输出矩阵的个数。

      fromTo – Array of index pairs specifying which channels are copied and where. fromTo[k*2] is a 0-based index of the input channel in src.

           fromTo[k*2+1] is an index of the output channel in dst. The continuous channel numbering is used: the first input image channels

           are indexed from 0 to src[0].channels()-1 , the second input image channels are indexed from src[0].channels() to src[0].

           channels() + src[1].channels()-1, and so on. The same scheme is used for the output image channels. As a special case,

           when fromTo[k*2] is negative, the corresponding output channel is filled with zero .

          设置输入矩阵的通道对应输出矩阵的通道,规则如下:首先用数字标记输入矩阵的各个通道。输入矩阵个数可能多于一个并且每个矩阵的通道可能不一样,

          第一个输入矩阵的通道标记范围为:0 ~ src[0].channels()-1,第二个输入矩阵的通道标记范围为:src[0].channels() ~ src[0].channels()+src[1].channels()-1,

          以此类推;其次输出矩阵也用同样的规则标记,第一个输出矩阵的通道标记范围为:0 ~ dst[0].channels()-1,第二个输入矩阵的通道标记范围为:dst[0].channels()

          ~ dst[0].channels()+dst[1].channels()-1,以此类推;最后,数组fromTo的第一个元素即fromTo[0]应该填入输入矩阵的某个通道标记,而fromTo的第二个元素即

          fromTo[1]应该填入输出矩阵的某个通道标记,这样函数就会把输入矩阵的fromTo[0]通道里面的数据复制给输出矩阵的fromTo[1]通道。fromTo后面的元素也是这个

          道理,总之就是一个输入矩阵的通道标记后面必须跟着个输出矩阵的通道标记。

      npairs– Number of index pairs in fromTo.

          即参数fromTo中的有几组输入输出通道关系,其实就是参数fromTo的数组元素个数除以2.

step 3:   源码案例

转载于:https://www.cnblogs.com/ruic/p/4926254.html

OpenCV之mixChannels()函数使用说明相关推荐

  1. Opencv多通道分离函数split()和多通道合并函数merge的使用

    多通道分离函数split() 功能:把一个多通道队列分离成几个单通道的队列. 如果你需要提取一个单通道或者做一些其他的复杂的通道排列组合,使用mixChannels. 函数原型1: CV_EXPORT ...

  2. opencv 图像操作,常用 OpenCV 内置函数

    OpenCV 如何对图像的像素进行操作 对图像的像素进行操作,我们可以实现空间增强,反色,大部分图像特效系列都是基于像素操作等目的.先来看一下内存空间中图像矩阵,也就是Mat的矩阵数值部分是怎么存储的 ...

  3. 图像边缘检测--OpenCV之cvCanny函数

    图像边缘检测--OpenCV之cvCanny函数 分类: C/C++ void cvCanny( const CvArr* image, CvArr* edges, double threshold1 ...

  4. OpenCV中initUndistortRectifyMap函数存在bug原因探究

    原文首发于公众号「3D视觉工坊」:OpenCV中initUndistortRectifyMap函数存在bug原因探究. 最近在运行如下一段代码时,生成的mapx和mapy有点异常. 代码片段如下: # ...

  5. 利用OpenCV的compareHist函数作直方图的相似度对比的源程序

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 OpenCV的compareHist函数用来计算 ...

  6. 转载:opencv中imshow函数运行中断的解决办法

    OpenCV中 imshow函数运行中断的解决方法 羊和咩咩 2017-03-10 16:00:49 5919 收藏 最后发布:2017-03-10 16:00:49首发:2017-03-10 16: ...

  7. OpenCV使用filter2D函数填充线性滤波器的实例(附完整代码)

    OpenCV使用filter2D函数填充线性滤波器的实例 OpenCV使用filter2D函数填充线性滤波器的实例 OpenCV使用filter2D函数填充线性滤波器的实例 #include &quo ...

  8. OpenCV演示FloodFill()函数的实例(附完整代码)

    OpenCV演示FloodFill函数的实例 OpenCV演示FloodFill函数的实例 OpenCV演示FloodFill函数的实例 #include "opencv2/imgproc. ...

  9. OpenCV凸凹面函数convexHull使用的实例(附完整代码)

    OpenCVOpenCV凸凹面函数convexHull使用的实例的实例 OpenCV凸凹面函数convexHull使用的实例 OpenCV凸凹面函数convexHull使用的实例 #include & ...

最新文章

  1. 语言模型“不务正业”做起目标检测,性能还比DETR、Faster R-CNN更好 | Hinton团队研究...
  2. sql必知必会样例表导入失败_记录WordPress搬家遇到的数据库导入错误问题
  3. form上传文件以及跨域异步上传
  4. 服务器集群技术(备份服务器方案和均摊工作方案)(用来解决服务器挂掉问题)...
  5. oracle 定时清理表数据,关于Oracle存储过程和调度器实现自动对数据库过期数据清除的问题...
  6. Java 8中的java.util.Random
  7. 和项目组研究计算几何
  8. Visual Studio IDE下载地址
  9. android评论功能带emoji,分享一个自己写的emoji-comments评论组件
  10. OpenCV自适应阈值分割函数:adaptiveThreshold()介绍
  11. python读usb_使用Python来操作Microchip安全芯片
  12. 通过命名空间快速定位SAP UI5工程名称
  13. VOC数据集格式介绍
  14. 汽车软件行业工程师详细介绍?(中)
  15. C# 获取微信二维码
  16. Android 广播(Broadcast)
  17. PostgreSQL索引(一)
  18. 【从0到1搭建LoRa物联网】11、ASR6505 LoRaWAN通信
  19. Edge浏览器占用大量硬盘空间
  20. 尝试使用ob的advanced slides插件,发现image显示异常

热门文章

  1. checked js 获取值_js获取所有checkbox的值的简单实例
  2. 一种新的url定向技术-使用@与/?
  3. 信息系统项目管理师:第7章:项目成本管理-章节重点
  4. 范围管理6个过程及相关重点
  5. 软件项目管理0709:一个项目经理对产品方案的迷思
  6. 如何做好技术 Team Leader
  7. PHP部分字符串函数汇总
  8. Android中使用WebView加载本地html并支持运行JS代码和支持缩放
  9. C#中快速设置控件的相关事件
  10. MyBatis中获取对应日期的记录的mapper语句