2013-06-26 10 views
0

크기 (1 x 5)의 SVM을 교육하기위한 레이블 행렬이 있습니다. 5 개의 이미지에 5 개의 레이블이 있습니다.Opencv Matrix 행과 열

이제 교육 데이터가있는 데이터 매트릭스의 크기는 1 x 65000입니다. 사실이 행렬은 크기 (5 x 13000)이어야합니다. 즉 13000 행의 5 열 (이미지)입니다.

나는 모양을 바꾸려고했지만 작동하지 않았다. 행렬 크기를 변경하는 방법에 대한 도움을받을 수 있습니까?

+1

매트를 어떻게 초기화합니까? – Poko

답변

1

에게 새로운 매트릭스를 작성하고 한 번에 하나 이상의 요소를 복사하는 것입니다 여기에서 할 수있는 간단한 일을 감사드립니다. 행렬의 구조가 무엇인지 모르겠지만 첫 번째 예제는 현재 부정확 한 행렬의 항목 1 ~ 5에있는 것과 같습니다.

cv::Mat training_data = new cv::Mat(13000, 5, CV_32F); 
for (unsigned int row = 0; row < training_data.rows; ++row) 
{ 
    for (unsigned int col = 0; col < training_data.cols; ++col) 
    { 
     training_data.at<float>(row, col) = old_training_data.at<float>(1, (training_data.cols * row) + col); 
    } 
} 

그런 다음 이전 훈련 데이터 매트릭스를 풀면 완전히 새로운 모양의 매트릭스가 생깁니다.