OpenCVでビデオフレームを読み取ってから、データを別のC ++コードにコピーして、別のことを実行しようとしています。私のコードは次のとおりです。
cv::Mat capturedFrame;
int newData[600][800];
std::cout<<"Debug1 " << std::endl;
memcpy((char*)newData, (char*)capturedFrame.data, 600*800*sizeof(int) );
std::cout<<"Debug2 " << std::endl;
mycode.setData ( newData );
std::cout<<"Debug3 " << std::endl;
次に、クラス「setData」は次のように定義されました。
char data [600][800];
void mycode::setData ( char newData[600][800] )
{
for ( int m=0; m < 600; m ++ )
{
for ( int n = 0; n < 800; n ++ )
{
data[i][j] = newData[i][j];
}
}
}
しかし、次の行になるとコードは停止します。
mycode.setData ( newData );
私を混乱させるのは、このコードを削除すると、画面に「Debug1」から「Debug3」が表示されることです。これは正常です。しかし、このコードを使用すると、画面に「Debug1」と「Debug2」を出力しなくてもプログラムが停止します。これは本当に奇妙です。また、「setData」クラスのすべての行をコメント化して空のクラスにしようとしましたが、エラーは同じです。ですから、それは「setData」クラスに関するものではなかったと思います。また、「capturedFrame.data」に他のフィルターを実行したため、「capturedFrame.data」が正しいこともわかっています。結果は良好でした。誰かがここでエラーを説明できますか?
編集:
デバッガーを使用しましたが、エラーメッセージは表示されませんでしたが、プログラムが応答を停止しました。また、データ型を「char」に変更しました。