什么是“转移”OpenCV的有效方法cv::Mat
?
换班我的意思是如果我有这样的行
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
我将它移动了3个位置,我会得到这样的一行
3, 4, 5, 6, 7, 8, 9, 0, 1, 2
现在我正在使用这个功能:
void shift( const cv::Mat& in, cv::Mat& out, int shift )
{
if ( shift < 0 || shift > in.cols ) return;
if ( shift == 0 || shift==in.cols ) {
out = in.clone();
} else {
cv::hconcat(in(cv::Rect(shift,0,in.cols-shift,in.rows)),in(cv::Rect(0,0,shift,in.rows)),out);
}
}
但我正在寻找一种更有效的方式。
答案 0 :(得分:0)
如果数组的大小不是很大并且行数= 1,则可以像这样重复数组 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9 然后要转移它,转移数组的数据指针