0

EmguCVを使用していて、サイズが640x480のバイトタイプのグレースケールマトリックスがあり、マトリックスのすべての要素が255または0のいずれかです。これから画像を作成する必要があります。私が見つけた最高のコンストラクターは次のようになりました。

Image<Gray,byte>(int width, int height, int stride, IntPtr scan0)

マトリックスから1番目、2番目、4番目のパラメーターを取得し、ストライドに640を送信しました。しかし、それは私に

Access violation exception: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

助けていただければ幸いです。

4

1 に答える 1

1

ポインターとして何か間違ったものを渡した可能性があります。ストライドを間違えると、画像の内容が歪んで表示されるだけです。ストライドは常にメモリ内の 1 つの画像行の長さを表すため (この場合は 640 バイト)、640 が正しい値になります (幅を再度使用するだけです)。_ptr推測はできますが、マトリックスのポインターを使用しようとはしません。これは論理的に聞こえるかもしれませんが、データだけでなく、マトリックス オブジェクト全体を指します (必要な場合)。今すぐ確認しなくても、マトリックスを使用しcopyTo()てコンテンツを画像にコピーできると確信しています(ユースケースで十分な場合)。

于 2011-05-09T23:44:56.510 に答える