- ベストアンサー
魚眼画像について
魚眼レンズで得られた周囲180の円形画像について展開方法を教えてください。 このように http://www.hh.iij4u.or.jp/~jun2/EnjoyFisheyeLens/EnjoyFisheyeLens002.html 経度にそって展開する方法 原理或いはそれを紹介するホームページいただいても幸いです。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>地図を作る方向と同じのことがわかったので、現在円筒図法とメルトカル図法を検討中、もし目標画像と同じような画像できたら報告します。 メルカトル図法いいですね。 正距円筒を、どのように縦に伸ばしているのかは存じませんが、我々が地図として見ているものの多くはメルカトル図法ですよね。 興味がある人もいると思うので、トランスフォームの式を載せて頂けると嬉しいです。
その他の回答 (3)
#1です。 役に立たずに済みませんでした。すでに終わっているとは思いますが・・・。 cosを使うならasinも必要でしたが、単純に、三平方の定理と比率で計算すべきでした。 u = x * sqr(r * r - y * y) / r;
お礼
わざわざ教えていただいてありがとうございました。 地図を作る方向と同じのことがわかったので、現在円筒図法とメルトカル図法を検討中、もし目標画像と同じような画像できたら報告します。 いろいろ本当にありがとうございました。
#1です。 >と多少違うことがおわかりいただけるでしょう。 がーん。 確かに全然違いますね。 申し訳ないです。
円の中心を原点とし、半径をrとする。 正方形の内側の点(x, y)に対応する円の内側の点(u, v)は u = x * cos(π / 2 * abs(y) / r); v = y; となります。 uを実数で求めてバイリニアで補完すれば、必要十分な画質が得られると思います。 バイリニア補完とは、uが3.8だとしたら、(3, v)のピクセルの20%と(4, v)のピクセルの80%を加算したものを使用するって事です。
お礼
公式など教えていただいてありがとうございました。早速inthefloiさんのやり方で試してみたら、このような画像を得られた。 http://www.geocities.jp/gongliwen2002/020Fisheyeresult1.jpg これは http://www.hh.iij4u.or.jp/~jun2/EnjoyFisheyeLens/EnjoyFisheyeLens002.html と多少違うことがおわかりいただけるでしょう。 自分ももう一度考えますので、ご回答本当にありがとうございました。
お礼
返信ありがとうございました。 メルカトル法とは、緯度φ、経度λ、地球半径Rとすると x=Rλ y=Rlntan(π/4+φ/2) 公式わかったけど、プログラムまだできてない…>_< たぶん私はどこか勘違いかもしれない、もしinthefloiさんできたら教えてください。
補足
inthefloiさん、例の変換画像わかりました、変換画像を得られたわけではないですが、我々は勘違いをしてしまった。私は今までメルカトル図法で魚眼画像を展開しようと思ったが、実際あのホームページの変換画像はもともと経度にそって変換したわけではないのだ、inthefloiさんのりや方では経線と緯線変換後に直線になって、しかしあのホームページ変換画像はこのようになる http://www.geocities.jp/gongliwen2002/fish.jpg 画像を見ればわかるように、経線と緯線は直線にならなかった、メルカトル図法では直線になるはず、だからこれはまた別の方法で変換したかもしれない。 いろいろ教えてくださって本当にありがとうございました!