えぬにの日記 このページをアンテナに追加 RSSフィード

書評(本の紹介)はこちら

2015-07-02

[]大黒天攻略


現時点で自分プレイ時に気をつけている事をまとめてみた。

今後もっと良いテクニックが見つかったら、追加・変更していきたい。


続きを読む

2015-05-15

[][]NHocrをWindowsビルド

win-nhocrをwindowsビルドしようとしたら3つのエラーが起きたので、その対処(手順)の話

# プラットフォームツールセットエラー

# afxres.h include エラー

# freetype.lib なしエラー



イントロ

iOSOCRを試してみる事にした。

日本語OCRで、オープンソース・簡単に使える系だとこの辺っぽい。

  • tesseract-ocr
  • NHocr

teseract-ocrは、cocoapodsを使ってちょいちょいと試せたのだけど。

NHocrの方は、Macでのbuildもままらない。

ので、まずは、慣れてるWindowsでbuild出来る所まで行く事にした。


Windows(VisualStudio2012)向けのソリューション一式がGitHubにあるので、それをダウンロードする。


matthewn4444/win-nhocr · GitHub


win-nhocr.slnをVisualStudio2012で開いてみて、何も考えずにビルド



1. プラットフォームツールセットエラー

エラー	1	error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.	C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets	44	5	libimgo

上のようなエラーが何個か出る。


プロジェクトビルドプラットフォームツールセットの指定が、環境に無いもの(v120=VisualStudio2013)を指定しているとエラーになっている模様。


ソリューションプロジェクトを2012に開いても何も言われてない事から2012のモノで間違い無さそうだけど、何故かプラットフォームツールセットの指定が2013のものになっているよう。

環境に2013が入っていると、2012上で操作しててもv120=2013が選べるらしいので、そういう環境作成されたのかも。


実験してないが、VisualStudio2013が入っている環境であれば上のエラーは出ないじゃないかと思う。


1.の対処

対処としては、ソリューションエクスプローラー上でプロジェクト(nhocr)を右クリックプロパティ構成プロパティ全般プラットフォームツールセットで、Visual Studio 2012(v110)を選択する。


これを、

  • nhocr
  • libimgo
  • libnhocr
  • libufp
  • objgrp
  • siplib

の各プロジェクトに対して設定する。


そして、ビルド



2. afxres.h include エラー

エラー	1	error RC1015: cannot open include file 'afxres.h'.	D:\space\Projects\ocr\win-nhocr-master\nhocr\nhocr.rc	10	1	nhocr

次は、こんなエラーが出る。

多分これは、ExpressバージョンVisual Studioを使って無ければ出ない。


afxres.hが無いと言われてて、これがExpressバージョンには無い模様。

MFCを使って無ければ不要なので、


2.の対処

・includeの記述をafxres.hから代替のwinres.hに変える 参照

・一切使って無さそうなので、コメントアウト

対処する。


またビルド



3. freetype.lib なしエラー

エラー	1	error LNK1104: ファイル 'freetype.lib' を開くことができません。	D:\space\Projects\ocr\win-nhocr-master\nhocr\LINK	nhocr

というエラー

freetypeは、win-nhocrには含まれてないので、別途持ってくる。

3.の対処

freetypeを別途用意して、プロジェクトライブラリディレクトリに追加する。


ビルド済みのものが、GnuWin32 projectダウンロードページにあるので、ダウンロードする。

参照


BinariesのZipリンクを選択してダウンロード。

適当場所解凍して、プロジェクトfreetype.libを参照先フォルダ指定を追加する。

ソリューションエクスプローラー上でプロジェクトnhocrを右クリックプロパティ構成プロパティ→リンカー→全般→追加のライブラリディレクトリに追加。


例:解凍して出来た freetype-2.3.5-1-bin を freetypeリネームして win-nhocr-master フォルダに配置した場合

..\freetype\lib


ビルド

これでまだwarningは出るがビルド出来る。



実際にテストの話は次回で。

2015-03-17

[][]SwiftでPickerViewを配置して項目の選択を実装する

  1. storyboardでPickerViewをView Controllerに配置する
  2. 配置したViewController classベースクラスに、UIPickerViewDelegate と UIPickerViewDataSource を追加する
  3. ViewController class にdelegateを実装
  4. storyboardのPickerViewとViewController classを接続する
  5. PickerViewのdelegate・data sourceにViewController class(のインスタンス)を設定する



  • 配置したViewController classベースクラスに、UIPickerViewDelegate と UIPickerViewDataSource を追加する
class ViewController: UIViewController
{
〜
}

class ViewController: UIViewController,
                             UIPickerViewDelegate,
                             UIPickerViewDataSource
{
〜
}

※この時点でerrorが出る(追加したベースクラスに応じて実装必要関数定義がないため)




    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }

※buildに必須



    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return 2
    }

※buildに必須



    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
        return "test"
    }

※あった方が良い、後で使う



    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    }

※後で使う




    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.pickerDetectMode.delegate = self
        self.pickerDetectMode.dataSource = self
    }

これで、buildが通り、実行したらstoryboardでPickerViewを置いた位置に1列でtest/testと同じ2行の項目のPickerが表示されればOK。

2015-03-13

[]イザナミ攻略ドロップキャラ中心

イザナミ、1回の降臨で7勝2敗くらいになってきたので、攻略をまとめます


今は、

クィーンバタフライ(神化)

ぬらりひょん

オルガ(進化)

ナポレオン(進化)(フレンド)

で行く事が多いです。


オルガ→エンシェントリドラ・クィーンバタフライ・ヨルムンガンドとかでも良いと思います

クィーンバタフライx2、ヨルムンガンドは未実験ですが。オルガ・エンシェントリドラは期間限定なので、持っていない場合、クィーンバタフライx2だと思います

※一部スクショがエンシェントリドラだったりしま

ナポレオン→テキーラはほとんどやってないので分からないのですが、貫通キャラを1か2入れておくのを気をつけておけば良い思います

貫通キャラハートを取るのはもちろん、とにかくぬらりひょん友情コンボが強力なのでそれをどこからでも起爆させ易いのも重要です。

ちなみに順番ですが、クィーンバタフライ→ぬらりひょんオススメしません。バトル1・2・4の復活ループで、クィバタで削っても、ぬらりひょんが決めきれない場面が多々あって、ものすごく時間がかかってしまう事があるからです。自分は、マルチの関係もって、クィバタ→ナポレオン→オリガorエンシェント→ぬらで行っています

続きを読む

2015-02-17

[][]OpenCV2.4.10でbuild error

結論

ライブラリ(cocoapods?)のバグっぽいので、前のバージョン指定して改善されるまで待つ。

podfileを

platform :ios, "8.1"
pod 'openCV', '2.4.9.1'

と書いてバージョン指定回避


■経緯

OpenCVで新しい実験をしようとpod installして実験コード書いてみると。謎のビルドエラー

Undefined symbols for architecture arm64:
  "_jpeg_free_small", referenced from:
      _free_pool in opencv2(jmemmgr.o)
      _self_destruct in opencv2(jmemmgr.o)
  "_jpeg_mem_available", referenced from:
      _realize_virt_arrays in opencv2(jmemmgr.o)
  "_jpeg_free_large", referenced from:
      _free_pool in opencv2(jmemmgr.o)
  "_jpeg_open_backing_store", referenced from:
      _realize_virt_arrays in opencv2(jmemmgr.o)
  "_jpeg_get_large", referenced from:
      _alloc_large in opencv2(jmemmgr.o)
      _alloc_barray in opencv2(jmemmgr.o)
  "_jpeg_mem_term", referenced from:
      _jinit_memory_mgr in opencv2(jmemmgr.o)
      _self_destruct in opencv2(jmemmgr.o)
  "_jpeg_mem_init", referenced from:
      _jinit_memory_mgr in opencv2(jmemmgr.o)
  "_jpeg_get_small", referenced from:
      _jinit_memory_mgr in opencv2(jmemmgr.o)
      _alloc_small in opencv2(jmemmgr.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

実験コードがまずい?何か手順違った?と思って、真っ新なプロジェクト前の記事で上手く行った手順をもう一度やって、OpenCVだけ入れた状態でビルドしてみるが、同様のエラー


エラーメッセージで検索してみると。同様のエラー結構出てるっぽい。2.4.10からっぽい。

OpenCV - Bug #4052/ No iOS Framework for 2.4.10 - OpenCV DevZone


前の記事では、OpenCVの2.4.9.1を入れていた。

(今入ってるライブラリバージョンは、プロジェクトのpodfile.lockをテキストで開いたら見れた)

入れるライブラリバージョン指定してなかったので、最新版が変わって2.4.10が入るようになってビルドエラーとなった模様。

podfileでライブラリバージョン指定できるようなので、podfileを書き換えて、もう一度pod install→buildしてみる。

platform :ios, "8.1"
pod 'openCV'

platform :ios, "8.1"
pod 'openCV', '2.4.9.1'

回避成功

Connection: close