Advertisement

opencv:mixChannels/multiply/ mulSpectrums

阅读量:

mixChannels

复制代码
 void cv::mixChannels(const Mat* src,

    
 size_t nsrcs,
    
 Mat* dst,
    
 size_t ndsts,
    
 const int* fromTo,
    
 size_t npairs)

将指定的通道从输入数组复制到输出数组的指定通道

  • const Mat* src 矩阵的输入数组或向量;所有矩阵必须具有相同的大小和深度。
  • size_t nsrcs src中的矩阵数
  • Mat* dst 矩阵的输出数组或向量;必须分配所有矩阵;它们的大小和深度必须与SRC[0]中的相同。
  • size_t ndsts dst中的矩阵数
  • const int* fromTo 索引对数组,指定要复制的通道和位置;FromTo[k2]是SRC中输入通道的基于0的索引,FromTo[k2+1]是DST中输出通道的索引;使用连续通道编号:第一个输入图像通道从0索引到SRC[0]。Channels() - 1,第二个输入图像通道从SRC[0].Channels() to SRC[0].Channels() +SRC[1].Channels() - 1等,输出图像通道采用相同的方案;特殊情况下,当FromTo[K*2]为负时,对应的输出通道填充为零。
  • size_t npairs FromTo中的索引对数
复制代码
 Mat bgra(5, 5, CV_8UC4, Scalar(255, 0, 0, 255));

    
 Mat bgr(bgra.rows, bgra.cols, CV_8UC3);
    
 Mat alpha(bgra.rows, bgra.cols, CV_8UC1);
    
 // forming an array of matrices is a quite efficient operation,
    
 // because the matrix data is not copied, only the headers
    
 Mat out[] = { bgr, alpha };
    
 // bgra[0] -> bgr[2], bgra[1] -> bgr[1],
    
 // bgra[2] -> bgr[0], bgra[3] -> alpha[0]
    
 int from_to[] = { 0,2, 1,1, 2,0, 3,3 };
    
 mixChannels(&bgra, 1, out, 2, from_to, 4);



复制代码
 void cv::mixChannels(InputArrayOfArrays src,

    
 InputOutputArrayOfArrays dst,
    
 const int* fromTo,
    
 size_t npairs)
复制代码
 void cv::mixChannels(InputArrayOfArrays src,

    
 InputOutputArrayOfArrays dst,
    
 const std::vector<int>& fromTo)

mulSpectrums

复制代码
 void cv::mulSpectrums(InputArray a,

    
 InputArray 	b,
    
 OutputArray c,
    
 int flags,
    
 bool conjB = false)

执行每两个元素乘法傅立叶频谱的

multiply

复制代码
 void cv::multiply(InputArray src1,

    
 InputArray src2,
    
 OutputArray dst,
    
 double scale = 1,
    
 int dtype = -1)

计算两个数组的每元素比例积

  • InputArray src1 第一输入阵列
  • InputArray src2 与src1大小和类型相同的第二个输入数组
  • OutputArray dst 与src1大小和类型相同的输出数组
  • double scale = 1 可选比例因子
  • int dtype = -1 输出数组的可选深度


全部评论 (0)

还没有任何评论哟~