使用OpenCV转换cv :: Mat的高效C ++方法

问题描述 投票:2回答:1

什么是“转移”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);
   }
}

但我正在寻找一种更有效的方法。

c++ opencv bit-shift
1个回答
0
投票

如果你的数组的大小不是那么大而行= 1那么你可以像这样重复你的数组0,1,2,3,4,5,6,7,8,9,0,1,2,3,4 ,5,6,7,8,9然后移动它移位阵列的数据交换器

© www.soinside.com 2019 - 2024. All rights reserved.