2017-10-07 7 views
-1

私はプロジェクタを通して画像を表示するRaspberry Piでプロジェクトをやっています。画像は、その幅のちょうど2倍の長方形です。私はプロジェクタを介して表示しているので、プロジェクトから一番遠い側が近い側よりも狭くなることを意味するので、イメージのその側を拡張する必要があります。画像の片側をゆがみます

誰かが私にそれをどのように実装するのか正しい方向に向けることができますか?私は、適切な用語が良いことを知っていなくても、私がする必要がある数学を見ています。

+0

コマンドラインツールを使用して画像を歪めたい、または作成したコードを使って処理したいと思っていますか?あらゆる種類の巧妙な方法で画像を歪めるための良いツールはImageMagickパッケージの一部である 'convert'です。 –

+0

私はコードで処理します。 – Gargoyle

+0

私は投影面に四角形を作る4つの点を持っていますので、最初の校正画像は矩形を描き、各コーナーがそれらの4点に触れるまで画像を調整してから、私が説明しなければならない「オフセット」。 – Gargoyle

答えて

1

あなたが求めていることは「キーストーン補正」と呼ばれています。多くのビデオプロジェクターはこれを自動的に行うことができるので、コードを書く前にチェックする価値があります:)

ImageMagick convertユーティリティを使用してこれを行う方法は次のとおりです。まず、画像のサイズを知る必要があります。議論のために、それが889 x 746であると仮定しましょう。また、画像が最上部よりも底部で60ピクセルだけ「薄く」なるようにし、「間引き」は、ライン。

左上のピクセル(1,1)、右上(889,1)、左下(1,746)、右下(889,746)を呼び出してみましょう。左上および右上のピクセルは、その位置に留まります。左下の「移動」は(1,746)から(61,746)になります。右下は(829,746)に移動します。これは889-60が829なので、これは左に移動します。

convert -distort perspectiveコマンドには、移動前と移動後の4つのピクセルの座標が必要です。次に、他のすべてのピクセルをどのように移動させるかを計算します。元の直線は直線のままです。したがって、上記の計算値を取って、我々が必要:もちろん

convert in.png -virtual-pixel transparent -distort perspective \ 
    '1,1 1,1   \ 
    889,1 889,1  \ 
    1,746 60,746  \ 
    889,746 829,746' \ 
    out.png 

、間隔は必須ではない:それは数字が上記の計算値と並ん方法を示すことだけです。

もちろん、画像のサイズや必要な補正の程度に合わせて、数値を調整する必要があります。 ImageMagickはRaspberry Piに対応しており、convertへの呼び出しをアプリケーションコードに埋め込むのは簡単です。

+0

ありがとうございます。 – Gargoyle

+0

ようこそ。私の答えが役に立つのであれば、少し上向きの矢印をクリックして気軽に他の人に知らせてください;) –

+0

これは実際に私が見ている方法の2つのステップです。元の画像よりも上を広げたいので、元の画像の幅を元の画像の幅より大きくする必要があります。次に、私が示したゆがみを使って*下*の幅を狭くします。 – Gargoyle