忍者ブログ
鋼鉄の咆哮 早く新作だして。・゚・(ノД`)・゚・。
[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [10
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

週末の酔いどれ状態だけど、忘れないようにメモ。

アイコン(イメージ)の形状比較(存在有無も兼ねて)に cvMatchContourTrees を利用したら、イメージがある場合は期待値が返ってきたので喜んで自動テストスクリプトをもりもり書いていたところ、AutoIt側のスクリプトは手を入れていないのにcvCreateContourTree で Assertion failed が発生してマッチングができない状態に。。。
openCVライブラリ(cvcontourtree.cpp)のコードを読み解ける読解力なぞないので、状況をみたあてずっぽうなんですが思うに、どうやら cvFindContours 関数で輪郭を抽出できない場合(1x1イメージとか、べた塗りイメージ)の場合だと、cvCreateContourTree では輪郭から2分木作れないので Assertion failed になる、らしい。

テストではスナップショットで取得したアイテム(イメージ)が意図したようにある場合と、設定が Disable でアイテム(イメージ)が存在しないない場合の判定にcvMatchContourTrees を利用したので、Assertion failed ではテストツールの根幹を揺るがすどころかぽきっと折っちゃう状況に。。。
アイテムがない場合は状況を織り込んで cvMtachShapes で判定(これは実績あり)して、ある場合はcvMatchContourTrees と使い分ければいいのかなぁ。

To Do:連休明けにイメージが1x1およびべた塗りの場合は cvMtachShapes 期待する結果を維持できるか確認すること。
PR
http://www.d3p.co.jp/edf3p/


最近 ゲームと言えばCiv5 しかやってなかったので、チェックすっかり怠ってた。
ペリ子参戦ですか、Vita購入決定です、ね。。。

見事に3年ぶり 2回目のAutoItネタw
AutoIt で DLL を動的にコールする方法と呼ばれる側の DLL 作り方メモ。

AutoIt で動的に DLL をコールするなら DllCall 関数を利用する。

$result = DllCall("dll", "return type", "function", type1, param1, [type2, param2])

AutoItで取得したスナップショットのパスをDLLに渡して形状比較の結果を戻り値を Double型 で受け取る例
-----
main()

func main()
local $result, $dll ="matching.dll",$matchtype = "ContoursMatching"
local $srcPath = "比較元のスナップショットのパス"、$cmpPath = "比較対象のスナップショットのぱす"

$result = DllCall($dll, "double", $matchtype, "str", $srcPath, "str", $cmpPath)

MsgBox(0, "Match score", $result)
endFunc
-----
説明
"return type" で、戻り値の型(double) を記述
type1、type2 は DLL に渡す型として ”str" を記述
param1、param2 は DLL に渡す値(パス)を記述


AutoIt はこれだけです。
Visual Studio2010 でビルドしたらばだ、
「MSB6006 mt.exe はコード 31 を伴って終了しました。」なるエラーと、なぜか解決できた方法できたのでメモ。
で、IDとパスワードを発掘して変更。
いつでもさいかいできませっと。
<< 前のページ 次のページ >>
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新CM
[05/08 NONAME]
[05/05 wakaiy]
[08/02 毒さん]
[08/02 serani]
[02/26 毒さん]
最新TB
プロフィール
HN:
毒さん
性別:
非公開
バーコード
ブログ内検索
忍者ブログ [PR]