【发布时间】:2013-02-03 20:58:59
【问题描述】:
我有一个Point 的向量向量(称为squares,由squares.cpp (OpenCV) 的findSquares() 函数返回)。
我想对存储在Point的向量中的四个点的x和y坐标求平均值(用c++语言)。
我尝试过这样做:
vector <Point> coordinates(4);
for ( int i = 0; i<squares.size();i++) {
coordinates[0].x += squares[i][0].x;
coordinates[0].y += squares[i][0].y;
coordinates[1].x += squares[i][1].x;
coordinates[1].y += squares[i][1].y;
coordinates[2].x += squares[i][2].x;
coordinates[2].y += squares[i][2].y;
coordinates[3].x += squares[i][3].x;
coordinates[3].y += squares[i][3].y;
}
if(squares.size() !=0){
for( int j=0; j<4; j++) {
coordinates[j].x /= squares.size();
coordinates[j].y /= squares.size();
}
}
但我得到了这个例外:
我以错误的方式读取 Point 向量的向量元素?
【问题讨论】:
-
你能展示创建
squares的过程吗? -
vector<vector<Point> > squares; findSquares(image,squares);你可以在这个链接找到findSquares(...)函数:[projects.developer.nokia.com/opencv/browser/opencv/opencv-2.3.1/… -
安迪的意思是:你如何填充方块?或者你不填充这个向量?我认为这是我们必须看到的函数
findSquares()。 -
@Cristina1986:我想看到的是
findSquares()的代码 -
尝试做
std::cout << squares[i].size()看向量square[i]的大小是多少。我敢打赌它是空的。
标签: c++ exception opencv vector