私は過去2日間投稿と例を調べてきましたが、私が試し、広範囲にテストしたすべてのスニペットは、少なくとも私の目的ではまったく役に立たないことが証明されています。
私がやりたいのは、壁や紙から撮影された黒いベクトル記号(スキャンが不十分な画像に似た品質)を比較し、同じまたは類似の記号の電子版(ローカルに保存され、写真と比較して)。添付の2つの画像をご覧ください。最初のきれいな画像(参照画像)はシンボルのデータベースバージョンであり、2番目の画像は私がiPadで写真を撮った一枚の紙に描いたくだらない絵です。
手順を次のようにしたかったのです。
- 2つの画像が読み込まれ、ここで見つけたこのトリミングアルゴリズムの修正バージョンを使用してトリミングされます:PILを使用した画像のトリミング。「しきい値」の値が50、「自明性」の値が20(リンクされたスクリプトのパラメーター)の場合、これらの画像に良い結果が得られることがわかりました。
- 次に、画像のサイズが同じサイズに変更され、比較されます
比較のために、私はさまざまな提案されたアプローチを試しましたが、これまでのところ結果はひどいものです。テストした画像よりもランダムな画像で実際に良い比較結果を得ることができます。実際の画像、それらのエッジ(ImageFilter.CONTOURまたはImageFilter.FIND_EDGESの「filter」関数で作成)、ピクセルベースの比較に基づいてRMS差の比較を試しましたが、これまでのところオンラインで見つけたものはありません(絶え間ないグーグルにもかかわらず)またはここStackOverflowで私にまともな結果を与えました。
問題はテスト画像のノイズの多い背景にあると思いますが、それを証明することはできませんでした。これらの画像のエッジからベクトルの輪郭を取得し、それらを単なる画像としてだけでなく画像ベクトルとして比較する方法があるかどうか誰かが知っていますか?私のくだらない絵にもかかわらず、これらの2つの画像はかなり類似しており、それから良い比較を得ることができるはずです。