我对opencv很新。我正在尝试编写一个循环,对大型(~1000 x~1000)矩阵的小(9x9)子矩阵进行一些处理。基于一些掩模矩阵,我决定是否在大矩阵中的特定点处理9x9。基于我阅读的文档,我试图将这行代码放在循环中:
Mat tempROI(*(data->cvData), Rect(i-4,j-4, i+5, j+5));
i和j是较大矩阵的行,col indecies。然后我有一个处理tempROI的函数。然而,我发现我的投资回报率的大小随着i和j的增加而增加。我抛弃了一个:
printf("Size of ROI = %d, %d.\nFor IDX = %d, %d\n", tempROI.rows, tempROI.cols, i, j);
进入循环调试。我看到我的投资回报率显着增加。例如,这是一个随机转储:
ROI的大小= 191,9。 对于IDX = 4,186
显然有些东西不能正常工作,我认为这是一个公平的假设,即谬误在于我对如何从较大的子矩阵中正确选择子矩阵的理解。有人可以建议最好的方法是什么?
在相关的说明中,我真的希望只使用指针,而不是每次循环迭代时实际创建矩阵标头。
简而言之 - 做我想做的事情的正确方法是什么?非常感谢。