バッファからcv :: Matを作成する必要がありますが、データを共有したくないので、Mat(height、width、type、data)コンストラクタを使用できません:このようにcv :: Matの内部バッファを操作するのは安全ですか?
int data[100];
cv::Mat m;
m.create(10, 10, CV_32SC1); // allocate own buffer for m
for (size_t i = 0; i < 100; ++i)
{
reinterpret_cast<int*>(m.data)[i] = data[i];
}
私は直接私の希望のタイプ(この場合はint型)のデータをコピーできるようにする(*常にUCHARある)内部バッファをキャストする必要があり、動作しているようです。しかし、私はuchar *を使ってすべての操作を行う方法をドキュメントが好んだことを思い出しました。これはソースバッファをuchar *にキャストし、stepWidthというパラメータを使用してuchar * -unitsの正しいオフセットを取得することを思い出しました。これを逆にするのは困っていますか、CV_32SC1型のMatのバッファは単純にintのバッファであり、違いはありませんか?
の「外国人データ」に関する話題があり
、多次元の問題は、私は私が心配する必要はありませんと仮定しそう適用されません。トピックに関しては、私はそのページで「外来」の存在を1つしか見つけず、バッファを共有する構造に適用されます。とりあえずありがとう! – neuviemeporte