OpenCV/ c++ for循环不会中断

OpenCV/C++ for loop does not break

本文关键字:中断 循环 for c++ OpenCV      更新时间:2023-10-16

我目前正在使用c++编写一个依赖于OpenCV的程序。我遇到了两个嵌套的for循环的问题。

float invalue = 0;
float columnvalue = 0;
CvScalar rscal;

printf("%in", height);
printf("%in", width);
for(int i=0; i < height; i++)
{
 columnvalue = 0;
 printf("%in", i);
 for(int j=0; j < width; j++)
  {
    rscal = cvGet2D(matrix,i,j);            
    columnvalue += rscal.val[0];        
   }
 printf("%fn", columnvalue);
 holder[i] = columnvalue;       
 }

我遇到的问题是,我似乎不增加超过2。这段代码的输出是:

480
640
0
100
1
113
2
200

然后代码停止运行。知道我哪里做错了吗?

我不确定你的意图是什么,所以我可能是错的,但我认为应该是float holder[] = new float[width];。我认为当前您正在尝试访问数组中根本不存在的元素,并且您正在更改heighti的值

我认为程序终止尝试访问未分配的内存位置持有人[I]。您可以通过注释掉

行来验证这一点
holder[i] = columnvalue;