в OpenCV у меня есть такая матрица: [3 4 2; 5 2 1; 6 7 9], то есть размером 3х3. Теперь я хочу изменить его на размер 3x1 и сделать так: [3 4 2 5 2 1 6 7 9]. Но это не совсем то, что я хочу, моя актуальная цель — ставить ноль до и после каждого значения, при этом повторять каждое значение трижды. Итак, моя матрица целей должна быть такой: [ 0 3 3 3 0 0 4 4 4 0 0 2 2 2 0 0 5 5 5 0 0 2 2 2 0 0 1 1 1 0 0 6 6 6 0 0 7 7 7 0 0 9 9 9 0]. Я написал для этого следующий код:
for ( int i = 0; i < 3; i ++ )
{
for ( int j = 0; j < 3; j ++ )
{
for ( int m = k + 1; m < m + 3; m ++ )
{
dstMat.col (m) = srcMat.at <int> ( i, j );
}
k = k + 5 ;
}
}
Есть ли лучший способ сделать это? Особенно без цикла for это действительно сбивает с толку. Спасибо заранее.