同じ画像の位置を調べるには?

解決


かんた  2004-09-03 12:40:31  No: 85407

壁紙のような大きな画像Aに、アイコンのような小さな画像Bが含まれているとします。
画像Bが、画像Aのどの位置に含まれているかを調べることってできるでしょうか?


Say  2004-09-04 05:50:56  No: 85408

原理的には、メモリ展開して、
完全一致するまでバイナリコンペアすればいいのでは?
非可逆圧縮しているとコンペアできなくなりますが。


かんた  2004-09-04 19:29:30  No: 85409

RES ありがとうございます。
なるほど、バイナリコンペアですね〜。APIとかあるのでしょうか?
それと、一致した場所から画像の座標が計算できるのでしょうか?


Say  2004-09-05 03:52:13  No: 85410

「バイナリコンペア」といっても、
画像データを2次元配列に展開しているのなら
矩形範囲の各要素を順次比較するだけです。
一致位置が座標になります。

PictureBoxに置いているのなら、(速度を気にしないなら)
矩形範囲を順次Pointして比較していくだけです。
やはり一致位置が座標になります。
速度が気になるならGDIを使えばいいでしょう。

画像ファイルどうしで比較しようと思ったら、
まず画像ファイルフォーマットを知る必要があります。
圧縮された画像の場合はまず展開する必要があります。
展開の方法は圧縮フォーマットに依存します。
既に述べたように非可逆圧縮フォーマットの場合、比較は極めて困難です。

完全一致比較の場合、非可逆圧縮でなければ比較的簡単ですが、
拡大縮小、回転、鏡像、減色、ゆがみ、ノイズなどを考慮して比較するとなると
精度によってはAI並みのパターンマッチングアルゴリズムが必要になります。


かんた  2004-09-06 21:49:39  No: 85411

BMPをGDIで色々やってみます。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加