名前に込めた意味

例えば、同じサブルーチンのような役割に見えても
C言語では関数、Javaではメソッドと呼びます。
同じように見えても、名前が違うということは、
そこに込められた意味があり、設計思想があるわけです。

ARを実現するにあたり、OpenCVとAndroidで
使用するAPI名から設計思想を考えてみました。

ARにはカメラ機能、画像処理機能、画像表示機能の
3要素が必要です。

まず画像処理機能ですが、OpenCVは画像処理の専門家で、
Androidとは比較になりませんので省略します。


画像表示機能はパソコンのモニターや、携帯の液晶画面に画像を
表示する機能です。
ソフトウェアというよりは、ハードウェアを指していることが多いので
これも省略します。


ではカメラ機能はどうでしょうか。
カメラからの画像取得のAPI名は以下の通りとなります。

OpeCV:
cvCreateCameraCapture
cvQueryFrame

Android:
Camera#open
Camera#setPreviewDisplay
Camera#startPreview
Camera.PreviewCallback


OpenCVはカメラを使用して、
外界のイメージをキャプチャするという意味を込めています。
つまり、カメラを写真撮影をするためのデバイスと捉えるのではなく、あくまでも
画像処理をするためのインプットとして捉えています。

一方で、AndroidはPreviewという名前を付けています。
何のプレビューかというと、写真撮影ですね。
Androidはカメラを写真撮影のためのデバイスとしか捉えていません。
なので、画像処理やARのことを考慮していない設計思想なんですね。
どうりで使えないわけです。


AndroidはカメラのAPI名から想像するに、あまり夢を見るアプリは
追求しない方がいいと思います(T_T)
どちらかというと、B2Bのお固いアプリで花開くのだと思います。

名前だけでそこまで分かるはずありませんが、
カメラに関しては、写真撮影以上のことを望まないアプリを作った方が
無難だと思います。

"名前に込めた意味" へのコメントを書く

お名前
メールアドレス
ホームページアドレス
コメント