Sikuli の画像認識を C# 内で使用する方法を見つけようとしています。スクリプト言語が少し遅いため、Sikuli 自体は使用したくありません。また、.NET C# アプリの途中で Java ブリッジを導入したくないためです。
したがって、画面の領域を表すビットマップがあります (この領域を BUTTON1 と呼びます)。画面のレイアウトが少し変わっているか、デスクトップ上で画面が移動されている可能性があるため、直接の位置を使用することはできません。まず、BUTTON1 の現在の位置がライブ画面内のどこにあるかを見つける必要があります。(これの写真を投稿しようとしましたが、私は新しいユーザーなのでできないと思います...説明が明確になることを願っています...)
Sikuli は裏で OpenCV を使用していると思います。オープン ソースなので、リバース エンジニアリングを行い、OpenCV で行っていることを理解して、代わりに Emgu.CV に実装できると思いますが、私の Java はあまり強力ではありません。
これを示す例を探しましたが、すべての例は非常に単純 (つまり、一時停止の標識を認識する方法) または非常に複雑 (つまり、顔認識を行う方法) のいずれかです...そして多分私はただ密集していますが、私はできますこれを行う方法の論理にジャンプしているようには見えません。
また、さまざまな画像操作ルーチンのすべてが実際にはプロセッサを集中的に使用するのではないかと心配しており、これをできるだけ軽量にしたいと思っています (実際には、画面上で見つけようとしているボタンやフィールドがたくさんあるかもしれません...)
したがって、代わりにこれを行うことを考えている方法は次のとおりです。
A) ビットマップをバイト配列に変換し、ブルート フォース検索を実行します。(私はその部分を行う方法を知っています)。その後
B)画像処理を使用する代わりに、見つけたバイト配列位置を使用して画面位置を計算します(これを行う方法が完全にはわかりません)。
それは完全にクレイジーですか?Aforge.Net または Emgu.CV を使用してこれを行う方法の簡単な例はありますか? (または、上記のステップ B を具体化する方法は...?)
ありがとう!