현재 프로젝트는 C++에서 opencv : Mat Matrices를 요소로 포함하는 2D 벡터가 필요합니다. 모든 변경 한 매트릭스 결과를 변경, 독립적 인 행렬을 생성하지 않는 행렬의 2 차원 벡터에 대해이 작업을 사용하여, 그러나opencv : matrices가 포함 된 2D 벡터를 초기화하는 방법은 무엇입니까?
vector < vector < deque<int> > > deques_vect2D;
deques_vect2D.resize(vect_col, vector <deque<int> > (vect_row, deque<int> (deque_init_size, deque_init_value)));
: 나는 완벽하게 잘 작동 deques의 2D 벡터를 생성하는 유사한 예를 찾아 2D 벡터의 요소. 그것은 하나의 행렬 만 존재하는 것 같습니다. 사람들이 (다른 데이터 유형 캐스팅을 많이 함축) 나중에 다른 알고리즘에 대한 입력을 할 예정대로
// init 2D vector
vector < vector <Mat> > mat_vect2D;
mat_vect2D.resize(vect_col, vector <Mat> (vect_row, Mat(mat_row, mat_col, CV_32S, Scalar::all(0))));
// change only the first Matrix
mat_vect2D[0][0].at<int>(0, 0) = 1;
mat_vect2D[0][0].at<int>(0, 1) = 2;
for (int r = 0; r < num_of_row; r++)
for (int c = 0; c < num_of_col; c++) {
cout << mat_vect2D[c][r] << endl;
}
// results in... (note how every matrix has changed)
[1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
(...)
예, 나는 2D 벡터의 요소로 행렬을해야합니까. 따라서 Matices를 요소로 사용하여 솔루션을 선호하지만 벡터는 다른 2D 구조로 대체 될 수 있습니다.