質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

1910閲覧

画像の距離 長さ 角度による 差分について(言語の指定はありません)

meeeei0000

総合スコア7

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2017/01/29 14:46

高さ1m 太さ30cm の円柱状のものを 高さ50cm 距離1m から撮影した場合
水平地点Aと 円柱の上部Bでは 写真上で どれだけ幅に差が生じますか?
また、その差の求め方もご存じでしたら 教えていただきたいです。

イメージ説明

※言語の指定はありません。
タグは指定が必須だったので暗示的に指定しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

円柱方向のどの高さでも視点からみた円柱の幅として見えている境界上の点は円柱の中心から同じ距離(=15)だけ離れているので、A,Bでの境界上の点と視点からの距離の比率の逆数が投影面(写真画像)上の長さの比率になると思います。そう考えると・・・

ratio = ((100^2 - 15^2) / (100^2 - 15^2 + 50^2))^0.5

写真上、Bの幅はA*ratioだけの幅になると思います。


なお、x^yはべき乗のつもりです。

レンズのゆがみ(?)の専門知識はないので等距離射影方式(魚眼レンズ)を仮定し、円柱のA地点での中心点を原点、画面上をY軸、原点から視点方向をZ軸として、空間上の座標x,y,zを

distance = (x^2 + y^2 + (100 - z)^2)^0.5
x' = x / distance
y' = y / distance

のように計算した結果のx', y'が写真上の座標になると仮定してます。

Fig.1

図で赤の線分が円柱の幅として見える長さで、矢印の線分が視点からの距離です。実空間上で同じ長さの線の写真上の長さは視点からの距離に反比例して見えるという考え方の投影方法です。上の回答は魚眼レンズみたいなゆがんだ画像になります。

なお・・・CG(普通のカメラも?)は中心射影方式という別の方法(distanceを単にz座標のみで決定)がむしろ一般的で注視点を円柱の中心として投影するとA,Bの長さは変わらなくなります。むしろそっちが正解なのかも知れませんが、それだと回答として面白くありません。

そこで魚眼レンズ(いいかえれば、Aを注視点として撮影した写真とBを注視点として撮影した2枚の写真に写った円柱の幅を比較する)としました。

投稿2017/01/29 16:03

編集2017/01/29 19:06
KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meeeei0000

2017/01/29 16:34

このような曖昧な質問に回答いただきありがとうございます。 ratio = ((100^2 - 15^2) / (100^2 - 15^2 + 50^2))^0.5 を計算した結果 25000.89 このような数字が出てきたのですが、何をあらわしているのでしょうか 写真上で Aの部分の幅が 10cm だったとすると 10cm * ? となると言うことでしょうか 予備知識が全くない状態で質問してしまったことを少し後悔しています。 せっかく丁寧に説明いただけのにも関わらず、半分も理解出来ていません。すみません。 このまま、わからないことを全て聞いていては いつまでたっても解決しそうにないので参考サイトなどを教えていただけると助かります。 >>レンズのゆがみ(?) この辺りのことまで考えようとはしていないので、全く問題ありません。
KSwordOfHaste

2017/01/29 18:42 編集

ratioは0.892375488ぐらいになります。A部分の写真上の幅が10cmならBは8.92...cmということですね。 自分の回答は丁寧な説明とはいいがたいですが、計算自体はピタゴラスの定理なので、どこに補助線を引くかがポイントです。ピタゴラスの定理、直線の距離等々で検索すると色々な解説ページがあると思います。ただ数学が苦手なら数学・幾何が得意な人に紙に絵をかきながら教わると一番わかりやすいと思います。絵なしに言葉で説明するのは説明をする側もされる側もわけがわからなくなりそうですね。 本件は補助線かいても複雑な図にはならないので絵を追加してみました。
meeeei0000

2017/01/30 04:19

わかりやすい図まで書いていただき有難うございました! おかげでイメージとして確認することが出来ました。 >>幾何が得意な人に紙に絵をかきながら教わると一番わかりやすいと思います。 教えて貰えれば良かったのですが、残念ながら詳しい人が周りにいませんでした・・・ >>ピタゴラスの定理、直線の距離等々で検索すると色々な解説ページがあると思います。 基礎から全く理解していなかったので、検索して勉強してみたいと思います。 基礎を学んだ後、またわからない点が出てくるかも知れませんが、その際は宜しくお願いします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問