あるマットから別のマットに画像データをコピーする必要があります。私のコードは以下のようになります
Mat src; // Source image
Mat res(1024,768,CV_8UC3); //Same width and height as source
uchar *dest=src.data;
res.data=dest;
しかし、目的地の画像が歪んでいます。それは私のコーディングの問題ですか?
前もって感謝します!
しかし、目的地の画像が歪んでいます。それは私のコーディングの問題ですか?
幅と高さが同じである場合、問題はチャネル数(ピクセルあたりのバイト数)にあると思われます。に変更CV_8UC3
してみてくださいCV_8UC1
。
また、コードはデータをコピーせず、ポインターをコピーします。に関するドキュメントをお読みくださいmemcpy
。
実際には、次の方法clone
を使用する必要がありcv::Mat
ます。
// returns deep copy of the matrix, i.e. the data is copied
Mat clone() const;