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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

2回答

7963閲覧

カメラで距離を図ることはできますか

daaaa

総合スコア44

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

8クリップ

投稿2015/06/25 06:40

編集2015/06/27 19:49

リンク内容このアプリっての物体から距離を測る方法を真似したいんですけどどうやって実装するのかわかりません
できれば説明付きサンプルコードほしいです(リンクでも構いません)
また個人的予想ですがピントを合わせる機能にこんな機能があるのかなと思って調べました。なかなか見つからないので苦労してます

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

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

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

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

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

guest

回答2

0

ベストアンサー

AndroidのAPIには距離計測の機能はないと思います。
(そもそもカメラ単体で距離を求めるには3Dカメラのようにカメラが2つ必要)

なので、リンク内容のアプリを真似するとしたら、
上述のアプリと同様に、傾きセンサー(X,Y,Z)と設定された基準値(カメラの高さh)を
用いて三角法で求めることになるかと思います。

投稿2015/06/25 23:10

horohoro

総合スコア490

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

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

daaaa

2015/06/26 03:45

そうなると測る対象を追いかけないといけないと思うんですが、それを認識させるにはどうしたら良いですか?
swordone

2015/06/26 04:41

具体的な実装方法はわかりませんが、 原理的にはレンズの焦点距離と、像を結ぶ位置のレンズからの距離が分かれば、 ピントを合わせた位置からカメラまでの距離を求めることができます。
horohoro

2015/06/26 11:35

リンク内容のアプリは、対象を追いかけるとか、 そんな複雑なことはしてないと思います。 (実際、カメラを手で塞いでも動作してますし。。。) バックグランドで、傾きセンサーの値を取得しながら、 プレビュー画像の中央に、十字のマーカーを表示。 んで、十字のマーカーを、測定対象の下部に合わせて写真を撮らせる。 この時、写真を撮った瞬間の、本体の傾きを保持する。 アプリに設定されているカメラの高さと、角度(写真を撮った時の傾き)が わかっているのでこれをもとに距離が計算出来る。 その後、プレビューのマーカーを測定対象の上部に合わせさせて この時の傾きと、下部に保持した傾きの差を取れば、 下部から上部までの角度が分かるので高さの計算も可能。 といったところでしょうか。。。
swordone

2015/06/27 06:37

Step1で高さと俯角がわかれば,水平方向の距離が求められます. その後,Step2でその水平方向の距離と仰角を使えば,(求める高さ-カメラの高さ)が分かります.
daaaa

2015/06/27 19:46

何か誤解を招いたようで申し訳ないのですが 僕が知りたいのは 高さを測る前にカメラで十字までのキョリを図っているじゃないですか そのスマホから物体までの距離を求める求め方を知りたいです
horohoro

2015/06/27 22:49

前回の回答を部分的に少し掘り下げただけですが... 1. 傾きセンサーで傾き(ピッチ角、ロール角)を取得。   https://sites.google.com/site/cobgroupsite/android/programing/accelerometer2   ※ピッチ、ロール角については、URL先の図を参照 2. 角度Θを計算 (ピッチ、ロール角は机に置いた状態が0度になっているので補正する) 3. 高さhと角度Θから距離Lを求める   距離L=tan(角度Θ)×h    http://keisan.casio.jp/exec/system/1259903491
daaaa

2015/06/29 06:54

ありがとうございます わかったような気がします
guest

0

何か誤解を招いたようで申し訳ないのですが
僕が知りたいのは
高さを測る前にカメラで十字までのキョリを図っているじゃないですか
そのスマホから物体までの距離を求める求め方を知りたいです

投稿2015/06/27 19:44

daaaa

総合スコア44

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

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

swordone

2015/06/28 01:40

このアプリの説明のStep1で測っているのは「カメラから物体の距離」ではなく, 「カメラと物体の"水平方向の"距離」です. カメラの十字点が自分の立っている足元の高さと同じ高さであると仮定して, 足元,カメラ,十字点を合わせている位置で直角三角形を作ることで距離を出しています. 足元-カメラは「高さ」としてアプリで設定すれば,十字を合わせた時のカメラの傾きによって角度θがわかるので, あとは三角関数を使えば算出できます.
daaaa

2015/07/01 15:25

補足がわかりやすい 僕が誤解してたことを理解して回答してくれてありがとう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問