問題タブ [affinetransform]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 変換された画像は常に表示される必要があります
双一次補間を使用して画像を変換しようとしています。私の入力画像は ですI
。アフィン行列[A]
があり、変換された画像が得られます。I'
双一次補間によれば、アフィン行列の逆を取り、inv([A])
それをすべての点に適用しています。出力画像のサイズ(初期レベルではすべてゼロ)、出力画像のサイズが任意のサイズになることを保証できないため、最初に境界を見つけて出力画像のサイズを取得できるようにします
これで、変換された画像を簡単に保存できるサイズ以上の入力画像、アフィン行列、および出力画像ができましたが、 ワープの後方後方法を適用すると、出力画像のすべてのピクセルを反復処理する必要があります(現在はゼロです)、変換された画像が常に表示されるように、変換された画像を中央に配置したいのですが、どうすればそれを行うことができますか?
matlab の組み込み関数を使用したくないことに注意してください。
編集
画像を変換するA
と B が得られましたが、画像の隅がトリミングされていることがわかります。それらも表示したいと思います。
python - PILを使用したアフィン変換後に画像の色が変わるのはなぜですか?
Python Imaging Libraryを使用image.transform
して、顔検出の画像にアフィン変換を適用し、目の位置に応じて顔を調整しています。結果は正しいですが、画像の色は以下のように変更されます。なんで?コードは次のとおりです。最後の 2 行は tranform 関数の呼び出しです。
java - Java - Graphics - paint() に渡された Graphics オブジェクトは、JPanel インスタンスの Graphics オブジェクトとは異なります
図形を描画し、それらの図形を選択できる JPanel があります。Graphics2D オブジェクトと組み合わせて、AffineTransform オブジェクトを使用して、このビューを変換する機能を追加し始めています。
私の paint() メソッドでは、もちろん、Graphics オブジェクトが渡されます。そのオブジェクトに新しい変換を設定し (この場合は、単に 2 でスケーリングします)、paint() メソッドのすべてが AffineTransform に従って正しく描画されます。設定しただけです。この時点で、図形の描画部分がうまく機能します。形状の選択に進みます...
形状の選択は、mousePressed() イベントで開始されます (私の JPanel は MouseListener インターフェースを実装しています)。mousePressed() イベントが発生したら、this.getGraphics() を呼び出して JPanel の Graphics オブジェクトを取得します。次に、それを Graphics2D オブジェクトにケース化し、getTransform() を呼び出して現在の変換を取得し、クリックしたポイントを変換されたポイントにマップできるようにします。しかし、getTransform() を呼び出すと、AffineTransform はデフォルトの [1, 0, 0], [0, 1, 0] の AffineTransform に戻ります。
JPanel の paint() に渡された Graphics オブジェクトが、JPanel にあるものとは異なるのではないかと考えていますが、それについてはわかりません。ここで何が起こっているのか誰にも分かりませんか?
java - 指定された角度でポリゴンを回転させる方法
に描かれたコンパスを作成していJPanel
ます。座標系の中心を の中心に変換しましたJPanel
。ここで、プログラムの別の部分から得られる特定の角度で、このポイントで針を回転させたいと思います。を試しましたAffineTransform
が、正しい方法がわかりませんでした。試してみると、針が円の外側に塗られていました。
java - Java 1.6seでアフィン変換を使用する位置を移動する理由
シェイプをスケーリングしたい。
だから私はアフィン変換で setToScale メソッドを使用します。
次に、形状の長さがトランスであるだけでなく、形状の開始点も移動します
どうして?
メソッド呼び出しの順序は、MousePress : initResize、MouseDrgged : resize です。
x,y はマウス座標
java - Javaでポイントを中心にポリゴン/ポイントを回転させる方法
指定された中心点を中心にポリゴンを回転させようとしましたが、試したことはすべてうまくいきませんでした。たとえば、私はグーグルで検索しましたが、多くのものが見つかりましたが、1つも機能していないようです。
私が複製しようとしている結果は、これに対する最初の回答と似ています
違いは、ポリゴンを実際に回転させる必要があることです。角度を付けて描画するだけではうまくいきません。(単純な物理モデリング用です)
これが私のコードで、実装しようとしたいくつかの異なる方法があります
affinetransform - 一致した asift 機能のシミュレートされたアフィン変換を回復します (モレルの実装)
ASIFT 特徴検出器のシミュレートされたアフィン変換を回復しようとした人はいますか? (著者の実装から)。元の論文では、シミュレートされたアフィンは式 2.2 によって明確に回復されますが、これが実行される明確なポイントを見つけることができないようです。誰も前に試したことがありますか?compute_asift_keypoints.cpp の関数compensation_affine_coor1は私が探しているもののようですが、スケールは正規化されているようで、変換を実行する座標の中心は明確ではありません。
java - 変換されたオブジェクトの x 点と y 点を取得する
AffineTransform を使用してタレットのバレルを変換していますが、バレルの先端から弾丸を発射したいと考えています。これらの座標を取得する方法はありますか、それとも手動で計算する必要がありますか?
変換のコード
弾丸のコード
java - ある四角形から別の四角形にマップするための変換を作成しますか?
AffineTransform
ある長方形から別の長方形へのマップ座標を作成する最も簡単な方法は何ですか(float/double 長方形が指定されています)?
更新 1
長方形はまったく異なる場合があります。たとえば、[(0,0)-(1,1)] と [(150,-14)-(-1000,-14.1)] です。そして、変換は一様に変換する必要があります。たとえば、長方形の角は 1 対 1 で変換する必要があります。たとえば、座標 (0,0) は (150,-14) になります。
更新 2
AffineTransform
計算だけでなく、オブジェクトが必要です。Graphics
オブジェクトに適用したいからです。また、単純な変換を連結した形にしたいと思います。
更新 3
次の 3 つのテストはすべて失敗します。
java - JavaでBufferedImageを回転させる方法は?
重複の可能性:
BufferedImage インスタンスの回転
私が現在使用している方法 (以下) では、角度の引数が小さくなると、BufferedImage がますます歪んでしまいます。