« 【よみもの】もーりおのつぶやき 第23回 | メイン | HSPTV!メルマガ 第55号 »

2007年12月14日

【講座】HSP3ワンポイントテクニック 第28回

このコーナーでは、HSP3の変わった使用例や、気付きにくい機能
などを紹介していきたいと思います。
今回もまた、HSP3.1から追加されたhspcvプラグインの、
強力で面白い命令を紹介していきたいと思います。
今回は、hspcvサンプルにある、cvmatch.hspを取り上げます。
これは、bgparts.jpgという画像データと同じ領域を、
bgsamp.jpg画像データの中から探し出すというものです。
スクリプトはとても単純で、cvload命令によってバッファ0と1に
画像を読み込んだ後に、cvmatch命令によって画像を検索します。
画像の検索というのは、1ドットごとに2つの画像を見比べて
いるだけかと思ってしまいますが、cvmatch命令はまったく同一の
画像だけでなく、ある程度の誤差範囲内で似ているイメージの
場所を探し出します。もっと端的に言うと、元画像の中から検索
したい画像に一番近い領域を無理やり見つけ出します。
これを応用することで、何枚かに分けて撮影された風景写真を
すべてつないでパノラマにしたり、大量にある画像ファイルの中
から重複がないかを調べるといった処理が可能になります。

#include "hspcv.as"
cvload "bgsamp.jpg",0
cvload "bgparts.jpg",1
cvgetimg 0,1
cvmatch x,y,CV_TM_SQDIFF,1,0
color 255,0,0
cvgetinfo sx, 1, CVOBJ_INFO_SIZEX
cvgetinfo sy, 1, CVOBJ_INFO_SIZEY
boxf x,y,x+sx,y+1
boxf x,y+sy,x+sx,y+sy+1
boxf x,y,x+1,y+sy
boxf x+sx,y,x+sx+1,y+sy
stop


まだまだhspcvには、色々な機能がありますので、皆さんも是非、
新機能を試してみてください。ではでは、また。

(おにたま)

投稿者 usuaji : 2007年12月14日 00:25

口臭チェッカー市場