カメラアプリ設計
- 憂鬱なプログラマのためのオブジェクト指向開発講座―C++による実践的ソフトウェア構築入門を読み切った。
噂以上の良書だったと思う。オブジェクト間の関連を,どのように設計し,コードレベルではどのように表現されるべきかということが実例と共に書かれている。 - なんとなくフラストレーションが溜まってるので,基本的なカメラアプリケーションをオブジェクト指向を用いて分析・設計してみる。
もちろん失敗するつもりで。 - うまくいったら研究等で使用するアプリケーションの雛形に持っていこうと思っているけれど,オブジェクト指向な開発っていうのは必ずしも研究向きではないということも事実として自覚しておくべき。
まあなんというか,酔狂でやってみる。 - 参考資料はこのあたり↓
オブジェクトモデル化技法 - Wikipedia:
はてなブックマーク - I wanna become a saddle of you. / オブジェクト指向:
仕様書
- カメラから取得した画像を,ディスプレイに表示する。
- 得られた画像を様々に加工し,その結果も適宜表示する。
- ユーザは加工などに使用するパラメータを設定できる。
- 処理に使用するパラメータや挙動を,ディスプレイに表示してユーザに提示する。
- 処理の内容によってウインドウの数や大きさは様々である。
クラス候補の抽出
- 名詞を抜き出していく
- カメラ
- 画像
- ディスプレイ
- 結果(画像処理などの結果)
- 処理に用いるパラメータ
- 処理の挙動(処理によってわかったことなど)
- ウインドウ
クラスの仕様
カメラコントローラクラス
- (名前を変更)カメラ→カメラコントローラ
- 仕様
- カメラコントローラは,はじめにカメラデバイスをOpenする。このとき,キャプチャのサイズやFPSを指定できる(できない場合もある)。
- カメラコントローラはカメラデバイスにキャプチャ要求を発行し,現在の画像を取得する。
- カメラの使用を停止するとき,カメラコントローラはカメラデバイスをCloseする。
- クラス図
カメラコントローラ キャプチャサイズ
FPS
キャプチャ画像カメラデバイスをOpen
カメラデバイスをClose
キャプチャサイズを指定
キャプチャのFPSを指定
現在の画像を取得
画像クラス
- 仕様
- 画像クラスはIplImageで代用するので略。
- クラス図
- IplImageに準拠
パラメータクラス
- 仕様
- パラメータクラスは要求に応じて処理や表示系にパラメータを渡す。
- パラメータはユーザによって設定されることもある。
- クラス図
パラメータクラス 各種パラメータ パラメータを設定
パラメータを取得