質問

行列の乗算を使用して、正方形の中心に基づいて、必要なものに基づいてある程度のイメージ(単純な正方形)を回転させるプログラムを作成する必要があります。これに関する助けは大歓迎です。微積分を一見しただけではないので、自分が何をしているのかについてほとんど手がかりがありません。

役に立ちましたか?

解決

http://www.aforgenet.com/framework/ をご覧ください。これは、プロジェクトで使用しているC#の完全な画像処理フレームワークです。私はちょうど彼らの助けを確認し、彼らはあなたが望むことをする機能を持っています-

// create filter - rotate for 30 degrees keeping original image size
RotateBicubic filter = new RotateBicubic( 30, true );
// apply the filter
Bitmap newImage = filter.Apply( image );

これはLGPLライブラリであるため、ライセンスが問題である場合、それらのバイナリに対してリンクする場合、問題はありません。それらは他のライブラリでもあります。

自分で作成することにした場合、C#で数値計算を行うのは良くないので、速度に注意してください。しかし、それを回避する方法があります。

他のヒント

これは、あなたが何を望んでいるかを議論する良いコードプロジェクトの記事です:

http://www.codeproject.com/KB/GDI-plus /matrix_transformation.aspx

平面でデジタル画像を回転させると、2X2の行列乗算が多くなります。ここには微積分は関係ありません!正方形の画像を回転させるために画像処理フレームワーク全体を必要とするわけではありません-これが画質と速度の点で本当にパフォーマンスに敏感でない限り。

ローテーションマトリックスでウィキペディアの記事の前半を読んでください。良いスタートを切りましょう。

簡単に言うと、原点(おそらく画像の中心を回転させる場合)を確立し、ピクセル空間で回転させたいピクセルの座標を計算し、回転行列を掛けます(記事を参照)。乗算が完了すると、ピクセル空間にピクセルの新しい座標ができます。そのピクセルを別の画像バッファーに書き込むと、オフになって回転します。繰り返す。回転角度がわかれば、回転行列を一度計算するだけで済みます。

お楽しみください

ポール

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top