gpt4 book ai didi

opencv - 在 OpenCV 中移动(如 Matlab 函数)矩阵的行或列

转载 作者:太空宇宙 更新时间:2023-11-03 20:57:19 26 4
gpt4 key购买 nike

在 Matlab 中有一个移位函数,用于对矩阵的列或行进行循环移位。 OpenCV中有类似的功能吗?

最佳答案

我一直在寻找同样的问题,但因为没有,所以我自己写了。这是另一种选择。在我的代码中,您可以向右或向左移动 n 次:对于 left numRight is -n, right +n

void shiftCol(Mat& out, Mat in, int numRight){
if(numRight == 0){
in.copyTo(out);
return;
}

int ncols = in.cols;
int nrows = in.rows;

out = Mat::zeros(in.size(), in.type());

numRight = numRight%ncols;
if(numRight < 0)
numRight = ncols+numRight;

in(cv::Rect(ncols-numRight,0, numRight,nrows)).copyTo(out(cv::Rect(0,0,numRight,nrows)));
in(cv::Rect(0,0, ncols-numRight,nrows)).copyTo(out(cv::Rect(numRight,0,ncols-numRight,nrows)));
}

希望这对某些人有所帮助。同样,shiftRows可以写成

关于opencv - 在 OpenCV 中移动(如 Matlab 函数)矩阵的行或列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10420454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com