OpenCV学习笔记_—— mixChannel()

3人阅读 评论(0) 收藏 举报
分类:
CV_EXPORTS void mixChannels(const Mat* src, size_t nsrcs, Mat* dst, size_t ndsts,
                            const int* fromTo, size_t npairs);

/** @overload
@param src input array or vector of matrices; all of the matrices must have the same size and the
same depth.
@param 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].
@param 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 .
@param npairs number of index pairs in fromTo.
*/

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

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

nsrcs:输入矩阵的个数

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

ndsts:输出矩阵的个数。

fromTo: 设置输入矩阵的通道对应输出矩阵的通道,规则如下:首先用数字标记输入矩阵的各个通道。输入矩阵个数可能多于一个并且每个矩阵的通道可能不一样, 第一个输入矩阵的通道标记范围为: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:即参数fromTo中的有几组输入输出通道关系,其实就是参数fromTo的数组元素个数除以2.


查看评论

OpenCV

-
  • 1970年01月01日 08:00

opencv3/C++ mixChannels()详解

mixChannels()函数用于将输入数组的指定通道复制到输出数组的指定通道。 mixChannels()参数说明: void mixChannels( const Mat* src, //输入...
  • akadiao
  • akadiao
  • 2018-01-08 20:36:14
  • 257

opencv中mixChannels的使用方法

mixChannels的使用方法 Copies specified channels from input arrays to the specified channels of output arr...
  • xuejiren
  • xuejiren
  • 2014-06-25 16:03:50
  • 5888

opencv函数之mixChannels

Copies specified channels from input arrays to the specified channels of output arrays.从输入中拷贝某通道到输出中...
  • lxy_2011
  • lxy_2011
  • 2016-12-14 17:22:30
  • 395

[OpenCV基础] OpenCV中对mixChannels函数的理解

mixChannels Copies specified channels from input arrays to the specified channels of output array...
  • u010013164
  • u010013164
  • 2014-08-07 18:51:02
  • 1296

OpenCV学习笔记(4)——mixChannels函数

mixChannels主要就是把输入的矩阵(或矩阵数组)的某些通道拆分复制给对应的输出矩阵(或矩阵数组)的某些通道中,其中的对应关系就由fromTo参数指定....
  • liuweiyuxiang
  • liuweiyuxiang
  • 2017-08-09 14:49:39
  • 650

OpenCV学习笔记大集锦

转载自: OpenCV学习笔记大集锦 – 视觉机器人 http://www.cvrobot.net/collect-opencv-resource-learn-study-note-chinese...
  • qq_26898461
  • qq_26898461
  • 2016-01-06 09:49:53
  • 1650

OpenCV学习笔记(五)

基础图像容器Mat的相关概念一、 Mat是一个类,有两个数据部分组成:矩阵头(包含矩阵尺寸、存储方法、存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同,矩阵可以是不同的维数)的...
  • asher__zhou
  • asher__zhou
  • 2016-08-11 22:12:46
  • 1163

OpenCV学习笔记(一):图像显示

《WIN10+VS2015+OpenCV3.1.0配置》文章中配置好OpenCV后第一个测试程序就是显示图像,但是显示图像不止这一种方法,索性就记录下我目前知道的其他图像显示方法,以便之后检索,其中不...
  • wangxuwen2
  • wangxuwen2
  • 2016-07-07 15:24:39
  • 313

OpenCV学习笔记(05):Mat类详解(二)

1. 前言:Mat类的深入解读我在学《数据结构》的时候,每接触一种新的ADT(abstract data type, 抽象数据类型 ),一般的套路都是这样的—— 1.先了解ADT的结构,如何定义?包...
  • CV_Jason
  • CV_Jason
  • 2017-02-09 14:26:50
  • 612
    个人资料
    等级:
    访问量: 621
    积分: 116
    排名: 118万+
    文章存档