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

时间:2013-06-10 21:02:14

标签: c++ opencv ubuntu for-loop

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

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


printf("%i\n", height);
printf("%i\n", width);

for(int i=0; i < height; i++)
{
 columnvalue = 0;
 printf("%i\n", i);

 for(int j=0; j < width; j++)
  {
    rscal = cvGet2D(matrix,i,j);            
    columnvalue += rscal.val[0];        
   }

 printf("%f\n", columnvalue);
 holder[i] = columnvalue;       
 }

我遇到的问题是我似乎没有增加到2.这段代码的输出是:

480
640
0
100
1
113
2
200

然后代码停止运行。我有什么问题吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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