Mat
OpenCVで変換する方法unsigned char*
と、データが配列になるかどうかを教えてもらえますか? また、配列のポインタにするためにvector<vector<double>>
toに対して同じことを行うにはどうすればよいか知りたいですか?float*
ありがとう。
質問する
17905 次
1 に答える
8
すでに述べたように、次のdata
メンバーを使用する必要がありcv::Mat
ます。
cv::Mat m;
...
uchar *data = m.data;
2 番目の質問について: まず、 からdouble
に変換するfloat
と、一部のデータが失われます。そして、それを行うためのすぐに使える解決策はないので、単純なサイクルを使用してベクターを配列ポインターにコピーするだけです。
float* toArray(vector<vector<double> >& arr)
{
if (arr.empty())
{
return NULL;
}
else
{
//I assume that each vector (element of arr) has the same size
int m = arr.size();
int n = arr[0].size();
float *res = new float[m * n];
int count = 0;
for (int i=0; i<m; i++)
{
for (int j=0; j<n; j++)
{
res[count++] = (float) arr[i][j];
}
}
return res;
}
}
于 2012-12-19T08:13:14.697 に答える