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)
还没有任何评论哟~
