Galaxy S2(SC-02C) ROM変更
4.0.3がリリースされた。
本家でも不具合がある為という理由でアップデートが取り消されている。
- 取り消される前にアップデートしてしまった。
- 使い勝手が悪くイライラする。
為、自己責任の元でROMの変更を行い快適に操作出来ていた2.3.6に戻す
事にした。
手順として
- オリジナルのROMの取得
- ROMの焼きこみ
- ファクトリーリセット
を実施する事でROMを完了出来る。
■オリジナルのROMの取得
2種類の方法がある
- http://www.sammobile.com/ からDL
- http://fus.nanzen.se/ のCheck Fus Downloaderを使ってDL
■ROMの焼きこみ
http://forum.xda-developers.com/ からOdin3 をDL
■ファクトリーリセット
ROMを焼いただけでは起動時にアプリが死にまくる。そして先に進めない。
ボリュームアップキー+HOMEキーを押しながら電源をONする。
リカバリーモードで起動するので、各種リセットする。
Eclipseを使ってandroidとOpenCVを連携させる
■OpenCVのダウンロード
http://sourceforge.net/projects/opencvlibrary/files/opencv-android/2.3.1/
から、OpenCVの2.3.1用の環境をダウンロードする。
解凍すると、
・OpenCV-2.3.1
・samples
フォルダが存在するはず。
■使う時の手順
- EclipseからAndroidアプリを新規で作成する
- パッケージエクスプローラから、作成したアプリを選択
- 右クリック→プロパティーを選択
- タブ:Java Build Pathを選択
- Link Source...を選択
- Linked Folder Locationに解凍時に出来た、『OpenCV-2.3.1』を指定する
- タブ:Androidを選択
- Libraryを選択
- Add...を選択し、OpenCVを追加する
以上で、AndroidアプリからOpenCVを使う事が出来る。
実行時に、『NoClassDefFoundError』のエラーログが出ていたら上記を再度
確認すべき。
Buttonレイアウト拡張(画像つきButton)
Buttonのコンポーネントに画像を表示させると
Buttonを押した時の動作をイメージしやすく出来る等の効果が得られる。
WPFではXAMLを使用する事でコンポーネントのレイアウトを自身で定義
する事が容易に出来る。
拡張に当たり、
- ContentTemplate
- DataTemplate
を使用する方法を以下に示す。
<Button> <Button.ContentTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Ellipse Fill="Red" Width="20" Height="20"/> <TextBlock Text="Sample"/> </StackPanel> </DataTemplate> </Button.ContentTemplate> </Button>
上記の例では
赤い丸と「Sample」の文字から構成されるButtonを表示させる事が出来る。
Ellipseの要素をImageにし、Sourceへ任意の画像を指定する事で画像つき
Buttonを表示させる事も出来る。
DataTemplate内に任意のレイアウトを記述する事で自由にレイアウトを拡張
出来てしまうのは魅力的な機能だと思う。
Ubuntu 11.04にてandroidのソースを取得する
以下にubuntuの端末に実行させるコマンドを記載する。
- sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
- mkdir $HOME/bin
- export PATH=$PATH:$HOME/bin
- echo $PATH
- curl http://android.git.kernel.org/repo >~/bin/repo
- chmod a+x ~/bin/repo
- mkdir android
- cd android
- repo init -u git://android.git.kernel.org/platform/manifest.git
- repo sync
以上で、androidフォルダにソースが格納される。
x64 OSにてOpenCV2.2を動作させる
大きく分けて
- ツールのインストール(VS2010、CMake)
- ソースの取得
- CMakeでVS2010のソリューション作成
- VS2010にてコンパイル
- binとlibを適度な位置に配置
- 配置したPathを通す
工程で実施出来た。
- ソースの取得
TortoiseSVNをインストールし、任意のPathにソースをExportする。
ソースは
https://code.ros.org/svn/opencv
にある。
- CMakeでソリューション作成
source code
は取得したソースコードのPath
binaries
は出力したいバイナリのPath
を指定。
Configre
を押し、VS2010 x64を選択する。
Generate
を押す。
後は、CMakeのbinariesに指定したPathにVS2010のソリューションが出力
されているのでコンパイルする。
結果のBinとLibを任意のPathに移動する。
環境変数にBinのPathを追加する。
Shader実装について
XNA4.0にて独自のShader(以降シェーダー)を使用する時の手順について
簡単にまとめて見た。
- ContentにEffectファイルを追加する
- Content.Load
("任意");でContentからEffectを読み出す - 独自の頂点領域を作成する場合は、IVertexTypeインターフェースを実装する
- VertexDeclarationをgetするアクセッサを実装する
- ここで生成したVertexDeclarationが頂点シェーダーに渡される
- Drawメソッド内で頂点領域をGraphicsDeviceに設定する
- DrawIndexedPrimitives等で描画する
後は独自のシェーダー内を実装すれば動作する。