姿勢センサを用いて,プロジェクタの台形補正を自動で行う画像処理プログラムを作成しようと思っています.
ネットで調べたところ射影変換を使うのが定石のようですが,
その際にカメラを併用して射影変換行列を得ているものがほとんどで,姿勢センサを利用したものが見あたりませんでした.
カメラを使わず,プロジェクタの姿勢を取得する3軸姿勢センサのみで
投影画像の台形補正を行うことは可能でしょうか?
シナリオとしては,机上に置いたプロジェクタで平面(壁)に投影することを想定しています.
また,投影面までの距離はあらかじめ分かっているという前提です.
参考になる書籍等でもかまいませんので,ご教授お願いします.m(_ _)m
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
本質的には、プロジェクタのレンズの中心点を、光の中心と考えて、その点から、映像の4隅までの距離が、(プロジェクタの置かれた角度により)どう変化するかという問題ですから、三角関数の組み合わせで解けそうな気はします。
が、ここでは、もっと安直な方法を。
実際に、プロジェクタを設置して、傾けてみて(姿勢センサの出力はとれるとして)壁に映った画像の4つの片の長さを実測してみれば、どう変換すればいいかがわかります。
プロジェクタを机の上に置いて、(多分垂直になっている)壁に映すということで、考えるべき角度の範囲はかなり狭いと思います。
この範囲なら、おそらく、傾ける角度と、画像の(各辺の)長さの変化は1次式で、かなり正しく表現できると思います。
あと、壁との距離は、姿勢センサを使うなら、影響はないはずです。
回答ありがとうございました.
確かに実測で計ってしまえば,(誤差は置いておいて)一番分かりやすい形で式が立てられそうです.
ただ,縦方向と横方向の姿勢変化を組み合わせると,かなり骨が折れそうですね^^;
まずは理論的に考えてみて,それが難しいようでしたらいただいたアイディアを使わせていただきます!
No.2
- 回答日時:
姿勢センサで分かるのはプロジェクタの姿勢だけですよね。
スクリーン(壁面)とプロジェクタが平行でなかったりの問題はカメラがないと補正できないと思いますが、そこは理想的な状態と言う非現実的な対応でよろしいのでしょうか?
この回答への補足
いえ,むしろその理想的でない場合に台形補正を行えればと思っています.
つまり,プロジェクタがスクリーンに対してPitch角やYaw角方向に姿勢が傾いていた場合にも,姿勢センサのみで台形補正を行いたいということです.
No.3
- 回答日時:
なかなか面白いことをやっていますね。
自動で台形補正をするためには、当然ですが画像がスクリーンにどのように投影されるかが求められなければいけません。
これを計算で求めるためには、スクリーンとプロジェクターとの位置関係と、プロジェクターの投影角などの内部状態がわからないといけません。
位置関係は、ある程度条件を制限して、姿勢センサで求めることができると思いますが、投影角はプロジェクタ内で可変なものがほとんどだと思います。
このため台形補正をするためには、プロジェクタの投影角を何らかの方法で取得しなければいけません。おそらくあなたのやりたいことだと、投影スクリーンの大きさはあらかじめ分かっているものとして、固定にしてしまってもいいかもしれません。
以上のことから外部変数と内部変数が求められますので、ピンホールカメラモデルに基づいて、射影行列を計算することができると思います。
この回答への補足
詳しい回答ありがとうございます.
ピンホールカメラモデルというものを使うということで,ネットで調べてみました.
プロジェクタとカメラで入出力が逆なので混乱してしまったのですが,
ワールド座標系に設置されたある大きさの長方形を本来のプロジェクタ投影画像とし,
カメラの場合で言う"画像座標系"をスクリーン(プロジェクタを投影する壁面)と置き換えて
考えるということでしょうか?
No.4
- 回答日時:
No.1 です。
事前調査はやったほうがいいですよ。
そうすれば、センサの出力が誤差だらけだとか、そもそも、センサの取り付け精度をどうやって補償するのかとか、周辺の問題もわかってきます。
また、データがあれば、数度程度の傾きなら、一次の多変量解析で、かなりいいデータが出るはずです。
なにより、回答を待っている間に、「ある程度の傾向」がわかるはずです。
実際、こういうものは、途中の理論はどうとでもなるものです。
それより、「入力」が本当に正しく得られるかというのが一番難しい点であることが多いです。
その上で、あくまでも理論的にと言うのなら、まず、すでに調べたカメラによる方法をまず完全に理解しましょう。
その方法は、
1)カメラで壁の映像を取得 → 2)実際に写っている画像のゆがみを認識 → 3)それを元に戻す。
というロジックだと思いますが、姿勢センサを使ったときの
1)姿勢センサで傾きを認識する → 2)壁に映っているはずの壁のゆがみを認識 → 3)それを元に戻す。
ということで、1)と2)だけを考えればいいことがわかります。
実際には、三角関数の応用問題なので、図形を書いて冷静に考えればそんなに難しくないと思います。
問題は、カメラの場合、3)でフィードバックを行っている可能性が高いと言うことです。
カメラを使った場合のロジックを理解するというのは、このフィードバックが本誌的なフィードバック(一発ではきっちり計算できないので、フィードバックをしながら修正をしている)なのか、見かけのフィードバック(位置が変わったときに自動的に補正できるようにしている)のか見極めることです。
前者(本質的なフィードバック)が必要と言うことであれば、姿勢センサだけで台形処理をすることは(画像のフィードバックを得る手段がないので)とても難しいと言うことになります。
あと、カメラを使った場合、水平方向のずれも組み込んでいるはずです。
姿勢センサでは、水平方向のずれが本質的に検出できませんから、水平方向のずれの部分を排除しなければなりません。(画像の変形のどの部分が水平方向のずれを反映しているのか確認する必要がある)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
角が丸部分を画像上から検出す...
-
生年月日(yyyy/MM/dd) → 年齢...
-
姿勢センサでプロジェクタの台...
-
Windows Media Playerを開くと...
-
Google ColaboでGUI作成
-
Cを一通りやった後・・何をすれ...
-
python urlopen error について...
-
LIBCMT.LIBをリンクしてコンパ...
-
iCloudフォトライブラリ内の画...
-
マウスのクリックを自動で
-
C#のゲーム作成
-
String^の^自体が何を意味して...
-
Ps+のフリープレイでDestiny2の...
-
C++/CLIについて
-
C++ 標準ライブラリの実際の中...
-
VB.NET とドットNET(.NET...
-
outp関数について
-
C++Builderに関するオススメの本?
-
論理的思考の身につけ方 プログ...
-
本格的なGUIを作るのにおすすめ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報