我正在使用以下视频帧代码来设置一定范围内的矩阵值:
for ( int row = 0, i = 0; row < srcMat.rows; ++row, i ++ )
{
uchar* p = medianMat.ptr ( row );
for ( int col = 0, j = 0; col < srcMat.cols; ++ col, j ++ )
{
dstMat ( cv::Range::all(), cv::Range ( i * 5 +1, i * 5 + 4 )).setTo ( *p );
data++;
}
}
我需要将 *p 复制到 dstMat 的三个连续值,并在它们之前和之后留下一个零空间。也就是说,如果我的 dstMat 全部为零,并且 *p 值为“1,2,3”,那么我的目标是让 dstMat 看起来像“01110 02220 03330”等。我希望我让这个容易理解。我的问题是:一帧大约需要 70 到 80 毫秒,这对我的情况来说太慢了。我最多有 30 毫秒的单帧。有没有更有效的方法来做到这一点?此外,“dstMat " 值在 "for" 循环之外都是零。你有什么想法吗?非常感谢。