私のアプリケーションでは、uiimage の境界を検出したいと考えています。花の画像には、単一の画像として(リーフ、粘着性の球根など)のような多くの部分があります。特定のリーフに触れると、その特定のリーフの境界値が見つかり、値が返されます。
私はこれについて何も知りません。これを行うのを手伝ってください。
そのために「フラッド フィル アルゴリズム」を使用できます。
この回答には、タッチポイントを取得するだけでは不十分です。
すべてをピクセル単位で分割する必要があり、それをさらに使用します。
いくつかのエッジ検出アルゴリズムを実装できます。しかし、画像処理の経験がない限り、それは大きな頭痛の種になると思います。
事前に画像を持っている場合 (そうですか?)、画像をマスクの構成として分離し、対応するマスクでタッチを検出できます。アイデアは、画像の各部分に対応するビットマップ マスクを持つことです。タッチを受け取ったら、すべてのマスクをチェックして、タッチの位置に黒いピクセルがあるマスクを確認します。クオーツの分厚いテクニックですが、エッジ検出よりはずっと親しみやすいと思います。関連するクォーツのドキュメントを確認してください。
UIImageView をサブクラス化し、タッチイベントと位置を検出することでこれを行うことができると思います。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint position = [touch locationInView:self];
}
私はこれを試したことはありませんが、これで問題が解決するようです。