1
2d STL 벡터를 OpenCV Mat로 변환하는 함수를 몇 줄 작성했습니다. OpenCV는 Mat (벡터)를 사용하여 벡터에서 매트 초기화를 지원합니다. 그러나 이번에는 2D 벡터를 시도했지만 성공하지 못했습니다.벡터에서 벡터화 된 opencv Mat의 템플릿 초기화
함수는 간단 같다 :
template <class NumType>
Mat Vect2Mat(vector<vector<NumType>> vect)
{
Mat mtx = Mat(vect.size(), vect[0].size(), CV_64F, 0); // don't need to init??
//Mat mtx;
// copy data
for (int i=0; i<vect.size(); i++)
for (int j=0; j<vect[i].size(); j++)
{
mtx.at<NumType>(i,j) = vect[i][j];
//cout << vect[i][j] << " ";
}
return mtx;
}
그래서 NumType에 따라서 매트 MTX를 initalize하는 방법은 무엇? 구문은 항상 CV_32F, CV_64F, ...로 고정되어 있으므로 매우 제한적입니다.
감사합니다!
1. 예를 들자면 도움이 될 것입니다. 교체 할 부품을 찾는 데 약간의 어려움이있었습니다. Mat mtx = Mat :: zeros (vect.size(), vect [0] .size(), DataType :: type); –
qwerty9967