;
;	HSP help manager用 HELPソースファイル
;	(先頭が「;」の行はコメントとして処理されます)
;

%type
拡張命令
%ver
3.4
%note
hspcv.asをインクルードすること。

%date
2009/08/01
%author
onitama
%dll
hspcv
%url
http://hsp.tv/
%port
Win


%group
hspcv (OpenCV 1.x)

%index
cvreset
HSPCVの初期化
%group
拡張画面制御命令
%inst
HSPCVが持つ「CVバッファ」をすべて破棄して、初期状態に戻します。
HSPCVの開始、終了時には自動的に初期化が行なわれます。
明示的に初期化したい時にcvreset命令を使用してください。



%index
cvsel
対象CVバッファの設定
%group
拡張画面制御命令
%prm
p1
p1 : CVバッファID
%inst
標準の操作先CVバッファIDを設定します。
パラメーターで、CVバッファIDを指定する時に省略した場合には、標準の操作先CVバッファIDが使用されます。



%index
cvbuffer
CVバッファを初期化
%group
拡張画面制御命令
%prm
p1,p2,p3
p1(0)   : CVバッファID
p2(640) : 横のピクセルサイズ
p3(480) : 縦のピクセルサイズ
%inst
指定したサイズでCVバッファを初期化します。
バッファを初期化することにより、各種画像処理が可能になります。
CVバッファは、フルカラーモード(RGB各8bit)で初期化されます。
%href
cvload



%index
cvresize
画像のリサイズ
%group
拡張画面制御命令
%prm
p1,p2,p3,p4
p1(0) : 横のピクセルサイズ
p2(0) : 縦のピクセルサイズ
p3 : CVバッファID
p4(1) : 補間アルゴリズム
%inst
CVバッファを(p1,p2)で指定したサイズに変更します。
p3で対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。
p4で補間アルゴリズムを指定します。
p4で指定する内容は以下から1つ選ぶことができます。
^p
	CV_INTER_NN - ニアレストネイバー
	CV_INTER_LINEAR - バイリニア(デフォルト)
	CV_INTER_AREA - ピクセル周辺をリサンプリング
	                (モアレを低減することができます)
	CV_INTER_CUBIC - バイキュービック
^p



%index
cvgetimg
画像の取得
%group
拡張画面制御命令
%prm
p1,p2
p1(0) : CVバッファID
p2(0) : 取得モード
%inst
CVバッファの内容をHSPのウィンドウバッファに転送します。
転送先となるHSPのウィンドウバッファは、gsel命令で指定されている現在の操作先ウィンドウIDとなります。
p1で転送元となるCVバッファIDを指定します。
省略された場合は、ID0が使用されます。
p2で、転送時の方法を指定することができます。
p2が0の場合は、HSPのウィンドウバッファサイズはそのままで転送を行ないます。
p2に1を指定した場合は、CVバッファと同じサイズにHSPのウィンドウバッファサイズを変更した上で転送を行ないます。
%href
cvputimg



%index
cvputimg
CVバッファに書き込み
%group
拡張画面制御命令
%prm
p1
p1 : CVバッファID
%inst
HSPのウィンドウバッファ内容をCVバッファに転送します。
転送元となるHSPのウィンドウバッファは、gsel命令で指定されている現在の操作先ウィンドウIDとなります。
p1で転送先となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。
%href
cvgetimg


%index
cvload
画像ファイル読み込み
%group
拡張画面制御命令
%prm
"filename",p1
"filename" : 画像ファイル名
p1 : CVバッファID
%inst
CVバッファを指定された画像ファイルの内容で初期化します。
p1で対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。

画像ファイルのフォーマットはファイル拡張子によって判断されます。
使用できるフォーマットと拡張子は以下の通りです。
^p
	Windows bitmaps - BMP, DIB
	JPEG files - JPEG, JPG, JPE
	Portable Network Graphics - PNG
	Portable image format - PBM, PGM, PPM
	Sun rasters - SR, RAS
	TIFF files - TIFF, TIF
	OpenEXR HDR images - EXR
	JPEG 2000 images - JP2
^p
処理が正常に終了した場合には、システム変数statが0になります。
何らかのエラーが発生した場合には、システム変数statが0以外の値となります。
#pack、#epack等で実行ファイル及びDPMファイルに埋め込まれたファイルは読み込むことができませんので注意してください。
%href
cvsave



%index
cvsave
画像ファイル書き込み
%group
拡張画面制御命令
%prm
"filename",p1,p2
"filename" : 画像ファイル名
p1 : CVバッファID
p2 : オプション値
%inst
CVバッファの内容を指定された画像ファイル名で保存します。
p1で対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。

画像ファイルのフォーマットはファイル拡張子によって判断されます。
使用できるフォーマットと拡張子は以下の通りです。
^p
	Windows bitmaps - BMP, DIB
	JPEG files - JPEG, JPG, JPE
	Portable Network Graphics - PNG
	Portable image format - PBM, PGM, PPM
	Sun rasters - SR, RAS
	TIFF files - TIFF, TIF
	OpenEXR HDR images - EXR
	JPEG 2000 images - JP2
^p
p2で指定するオプション値は、フォーマットごとの設定を指定するためのものです。
現在は、JPEGフォーマット保存時の品質(0〜100)のみ指定可能です。
p2の指定を省略した場合は、JPEGフォーマット保存時に、品質95が使用されます。
処理が正常に終了した場合には、システム変数statが0になります。
何らかのエラーが発生した場合には、システム変数statが0以外の値となります。
%href
cvload



%index
cvgetinfo
CVバッファ情報を取得
%group
拡張画面制御命令
%prm
p1,p2,p3
p1 : CVバッファ情報が取得される変数
p2 : CVバッファID
p3 : CVバッファ情報ID
%inst
CVバッファに関する情報を取得してp1の変数に代入します。
p2で対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。

p3で取得する情報の種類を指定することができます。
p3に指定できるマクロは以下の通りです。
^p
	マクロ               内容
	-------------------------------------------
	CVOBJ_INFO_SIZEX     横方向サイズ
	CVOBJ_INFO_SIZEY     縦方向サイズ
	CVOBJ_INFO_CHANNEL   チャンネル数
	CVOBJ_INFO_BIT       チャンネルあたりのビット数
^p
%href
cvbuffer
cvload



%index
cvsmooth
画像のスムージング
%group
拡張画面制御命令
%prm
p1,p2,p3,p4,p5
p1 : スムージングのタイプ
p2 : param1
p3 : param2
p4 : param3
p5 : CVバッファID
%inst
CVバッファにスムージングを適用します。
p5で対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。

p1で指定することのできるマクロは以下の通りです。

CV_BLUR_NO_SCALE
(param1×param2の領域でピクセル値を足し合わせる)

CV_BLUR
(param1×param2の領域でピクセル値を足し合わせた後、
 1/(param1*param2)でスケーリングする)

CV_GAUSSIAN
(param1×param2ガウシアンフィルタ)

CV_MEDIAN
(param1×param2メディアンフィルタ)

CV_BILATERAL
(3×3バイラテラルフィルタ(param1=色分散, param2=空間分散))
^p
http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html
^p
「param1×param2」のパラメーターは、1以上の奇数を指定する必要があります。



%index
cvthreshold
画像を閾値で取得
%group
拡張画面制御命令
%prm
p1,p2,p3,p4
p1 : ２値化タイプ
p2 : 閾値(実数)
p3 : 二値化後の画素値(実数)
p4 : CVバッファID
%inst
CVバッファに対して閾値をもとに２値化を行ないます。
p4で対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。
p1で指定することのできるマクロは以下の通りです。
^p
CV_THRESH_BINARY     : val = (val > thresh ? MAX:0)
CV_THRESH_BINARY_INV : val = (val > thresh ? 0:MAX)
CV_THRESH_TRUNC      : val = (val > thresh ? thresh:val)
CV_THRESH_TOZERO     : val = (val > thresh ? val:0)
CV_THRESH_TOZERO_INV : val = (val > thresh ? 0:val)
^p




%index
cvrotate
画像の回転
%group
拡張画面制御命令
%prm
p1,p2,p3,p4,p5,p6
p1(0) : 角度(実数)
p2(1) : スケール(実数)
p3(0) : 中心座標のXオフセット(実数)
p4(0) : 中心座標のYオフセット(実数)
p5 : 補間アルゴリズム
p6 : CVバッファID
%inst
CVバッファ全体を回転させます。
p1で角度(360度で一周)を、p2でスケールを設定します。
(p3,p4)で中心のオフセットを指定することがてきます。
p5で、回転時の補間アルゴリズムを指定します。
p5で指定する内容は以下から1つ選ぶことができます。
^p
	CV_INTER_NN - ニアレストネイバー
	CV_INTER_LINEAR - バイリニア(デフォルト)
	CV_INTER_AREA - ピクセル周辺をリサンプリング
	                (モアレを低減することができます)
	CV_INTER_CUBIC - バイキュービック
^p
また、p5に同時指定できるオプションが用意されています。
^p
	CV_WARP_FILL_OUTLIERS - 外部ピクセルを埋める
	CV_WARP_INVERSE_MAP - 回転を逆行列で行なう
^p
デフォルトでは、CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERSが指定されています。
p6で対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。



%index
cvarea
コピー元領域の指定
%group
拡張画面制御命令
%prm
p1,p2,p3,p4
p1(0) : コピー元 X座標
p2(0) : コピー元 Y座標
p3(0) : コピー領域 Xサイズ
p4(0) : コピー領域 Yサイズ
%inst
cvcopy命令で画像のコピーを行なう際のコピー元領域を指定します。
パラメーターがすべて0の場合や、すべて省略してcvarea命令を実行した場合は、CVバッファ全体が対象になります。
%href
cvcopy



%index
cvcopy
画像のコピー
%group
拡張画面制御命令
%prm
p1,p2,p3,p4,p5
p1(0) : コピー元CVバッファID
p2(0) : コピー先 X座標
p3(0) : コピー先 Y座標
p4 : コピー先CVバッファID
p5(0) : 演算オプション
%inst
CVバッファの内容を別なCVバッファにコピーします。
p1で指定されたCVバッファIDがコピー元として使用されます。
バッファの一部をコピーする場合には、cvarea命令で位置やサイズをあらかじめ設定しておく必要があります。
p5の演算オプションにより、コピー時にいくつかの演算を行なうことが可能です。p5に指定できるマクロは以下の通りです。
^p
	CVCOPY_SET (上書きコピー)
	CVCOPY_ADD (加算)
	CVCOPY_SUB (減算)
	CVCOPY_MUL (乗算)
	CVCOPY_DIF (差分)
	CVCOPY_AND (論理積)
^p
p4でコピー先となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。

CVバッファの色モードは、コピー元とコピー先で合わせておく必要があります。
グレイスケール(白黒)画面とフルカラー画面を混在してコピーすることはできません。
%href
cvarea



%index
cvxors
画像のXOR演算
%group
拡張画面制御命令
%prm
p1,p2,p3,p4
p1(255) : XOR演算で使用するR値
p2(255) : XOR演算で使用するG値
p3(255) : XOR演算で使用するB値
p4 : コピー先CVバッファID
%inst
CVバッファの内容に対してXOR演算を行ないます。
p1〜p3までで、RGB値に対する演算値(0〜255)を指定します。
p4で対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。
%href
cvcopy



%index
cvflip
画像の反転
%group
拡張画面制御命令
%prm
p1,p2
p1(0) : 反転のモード
p2 : コピー先CVバッファID
%inst
CVバッファの内容を反転させます。
p1で反転のモードを指定することができます。
p1が0の場合は、上下反転になります。
p1が1以上の場合は、左右反転になります。
p1がマイナス値の場合は、上下左右ともに反転されます。

p2で対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。



%index
cvloadxml
XMLファイルの読み込み
%group
拡張画面制御命令
%prm
"filename"
"filename" : 読み込むXMLファイル名
%inst
"filename"で指定されたファイルをXMLファイルとして読み込みます。
XMLファイルは、画像の顔認識等で必要な場合にあらかじめ読み込んでおく必要があります。

処理が正常に終了した場合には、システム変数statが0になります。
何らかのエラーが発生した場合には、システム変数statが0以外の値となります。

#pack、#epack等で実行ファイル及びDPMファイルに埋め込まれたファイルは読み込むことができませんので注意してください。
%href
cvfacedetect



%index
cvfacedetect
画像の顔認識
%group
拡張画面制御命令
%prm
p1,p2
p1 : CVバッファID
p2(1) : スケール値(実数)
%inst
CVバッファの画像から特定のパターンを認識します。
パターンのパラメーターを持つxmlファイルを、あらかじめcvloadxml命令で読み込んでおく必要があります。

p1で対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。

p2で処理時のスケールを設定することができます。
ここで1より大きい値を指定すると、処理時にバッファサイズを縮小して処理されるようになります。大きな画像等で時間が
かかる場合などに指定するといいでしょう。

実行後に、システム変数statに認識された数が返されます。
statが0の場合は、まったく認識されていないことを示します。
statが1以上の場合は、cvgetface命令によって認識された領域を取得することができます。
%href
cvgetface
cvloadxml



%index
cvgetface
認識された座標の取得
%group
拡張画面制御命令
%prm
p1,p2,p3,p4
p1 : 認識されたX座標が代入される変数
p2 : 認識されたY座標が代入される変数
p3 : 認識されたXサイズが代入される変数
p4 : 認識されたYサイズが代入される変数
%inst
cvfacedetect命令によって認識された領域を取得します。
p1からp4までの変数に、座標値が整数で代入されます。
cvfacedetect命令によって認識された個数だけ、繰り返して領域を取得することができます。

正常に取得できた場合には、実行後にシステム変数statが0になります。
取得できるデータがない場合には、システム変数statは1になります。
%href
cvfacedetect



%index
cvmatch
画像のマッチング検査
%group
拡張画面制御命令
%prm
p1,p2,p3,p4,p5
p1 : 認識されたX座標が代入される変数
p2 : 認識されたY座標が代入される変数
p3 : マッチングのタイプ
p4 : マッチング元のCVバッファID
p5 : マッチング先のCVバッファID
%inst
マッチング先のCVバッファの中から、マッチング元のCVバッファに最も近い領域を探し出して結果を返します。
実行後、(p1,p2)に指定した変数へ結果となる座標を代入します。
p3でマッチングで使用する評価方法のタイプを指定します。
p3で指定することのできるマクロは以下の通りです。
^p
CV_TM_SQDIFF
	R(x,y)=sumx',y'[T(x',y')-I(x+x',y+y')]^2

CV_TM_SQDIFF_NORMED
	R(x,y)=sumx',y'[T(x',y')-I(x+x',y+y')]^2/sqrt[sumx',y'T(x',y')^2・sumx',y'I(x+x',y+y')^2]

CV_TM_CCORR
	R(x,y)=sumx',y'[T(x',y')・I(x+x',y+y')]

CV_TM_CCORR_NORMED
	R(x,y)=sumx',y'[T(x',y')・I(x+x',y+y')]/sqrt[sumx',y'T(x',y')^2・sumx',y'I(x+x',y+y')^2]

CV_TM_CCOEFF
	R(x,y)=sumx',y'[T'(x',y')・I'(x+x',y+y')],
	where T'(x',y')=T(x',y') - 1/(w・h)・sumx",y"T(x",y")
	I'(x+x',y+y')=I(x+x',y+y') - 1/(w・h)・sumx",y"I(x+x",y+y")

CV_TM_CCOEFF_NORMED
	R(x,y)=sumx',y'[T'(x',y')・I'(x+x',y+y')]/sqrt[sumx',y'T'(x',y')^2・sumx',y'I'(x+x',y+y')^2]
^p
p5で対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。

cvmatch命令は、あくまでも最も近い領域を検索するだけで、完全に同じであることを保障するものではありません。



%index
cvconvert
色モードの変換
%group
拡張画面制御命令
%prm
p1,p2
p1(0) : 変換モード
p2 : CVバッファID
%inst
CVバッファをp1で指定された色モードに変換します。
p1が0の場合は、フルカラー画面をグレイスケール(白黒)画面に。
p1が1の場合は、グレイスケール(白黒)画面をフルカラー画面に、それぞれ変換します。
p2で対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。



%index
cvcapture
カメラキャプチャの開始
%group
拡張画面制御命令
%prm
p1,p2
p1(0) : カメラID
p2 : CVバッファID
%inst
キャプチャデバイスからの入力を開始します。
p1で、カメラを特定するためのカメラIDを指定します。
p1で指定できる値は以下の通りです。
複数のデバイスが接続されている場合は、1づつ値を加算することで特定することが可能です。
^p
マクロ          値      内容
-------------------------------------------------
CV_CAP_ANY      0  	利用可能なデバイスすべて
CV_CAP_MIL      100	Matrox Imaging Library
CV_CAP_VFW      200	Video for Windows
CV_CAP_IEEE1394 300	IEEE1394(現バージョンでは未対応です)
^p
p2でキャプチャした画像を保存する対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。

カメラキャプチャの開始後は、cvgetcapture命令によってフレームごとの画像を取得することができます。
また、不要になった場合には必ずcvendcapture命令でキャプチャを終了させる必要があります。
%href
cvgetcapture
cvendcapture



%index
cvgetcapture
キャプチャ画像の取得
%group
拡張画面制御命令
%inst
cvcapture命令によって開始されたキャプチャのフレーム画像を取得します。
取得されるCVバッファは、cvcapture命令で設定されたIDになります。
%href
cvcapture



%index
cvendcapture
カメラキャプチャの終了
%group
拡張画面制御命令
%inst
cvcapture命令によって開始されたキャプチャを終了します。
%href
cvcapture



%index
cvopenavi
aviファイル取得の開始
%group
拡張画面制御命令
%prm
"filename",p1
"filename" : avi動画ファイル名
p1 : CVバッファID
%inst
avi動画ファイルからの入力を開始します。
指定されたファイル内のフレームを取得することができるようになります。

p1でキャプチャした画像を保存する対象となるCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。

aviファイル取得の開始後は、cvgetavi命令によってフレームごとの画像を取得することができます。
また、不要になった場合には必ずcvcloseavi命令でaviファイル取得を終了させる必要があります。

cvopenavi命令は、あくまでもaviファイルの内容を簡易的に取り出すための機能で、正常な動画再生を行なうためのものではありません。あくまでも、フレームを取り出して処理を行なうための補助機能だとお考えください。
また、cvopenavi命令が扱うことのできるaviファイルは、古い形式のaviフォーマットに限られており、すべてのaviファイルを開くことができるわけではありません。
%href
cvgetavi
cvcloseavi



%index
cvgetavi
aviファイル画像の取得
%group
拡張画面制御命令
%inst
cvopenavi命令によって開始されたaviファイルのフレーム画像を取得します。
取得されるCVバッファは、cvcapture命令で設定されたIDになります。
%href
cvopenavi



%index
cvcloseavi
aviファイル取得の終了
%group
拡張画面制御命令
%prm
%inst
cvopenavi命令によって開始されたaviファイル取得を終了します。
%href
cvopenavi



%index
cvmakeavi
aviファイル出力の開始
%group
拡張画面制御命令
%prm
"filename",p1,p2,p3
"filename" : 出力するavi動画ファイル名
p1(-1) : 32bit Codecコード
p2(29.97) : 実数によるフレームレート(fps)
p3 : CVバッファID
%inst
avi動画ファイルへの出力を開始します。
指定されたファイル名でaviファイルを作成します。

p1でコーデックが持つ32bitのコード(FOURCC)を指定します。
p1に-1を指定した場合は、コーデックを選択するダイアログが開きます。
p2で実数によるフレームレート(fps)を指定します。
p2の指定が省略された場合には、29.97fpsとなります。

p3で出力画像を保持するCVバッファIDを指定します。
省略された場合は、cvsel命令で設定されたIDが使用されます。

出力の開始後は、cvputavi命令によってフレームごとの画像を登録して、最後にcvendavi命令を呼び出す必要があります。
%href
cvputavi
cvendavi



%index
cvputavi
aviファイルに画像を出力
%group
拡張画面制御命令
%inst
cvmakeavi命令によって開始されたaviファイルに、フレーム画像を追加します。
参照されるCVバッファは、cvmakeavi命令で設定されたIDになります。
%href
cvmakeavi



%index
cvendavi
aviファイル出力の終了
%group
拡張画面制御命令
%inst
cvmakeavi命令によって開始されたaviファイル出力を終了します。
%href
cvmakeavi



%index
cvj2opt
JPEG-2000保存オプション設定
%group
拡張画面制御命令
%prm
"format","option"
"format" : フォーマット文字列
"option" : オプション文字列
%inst
cvsave命令でJPEG-2000形式(.jp2)を指定した際の詳細設定を行ないます。
フォーマット文字列には、以下のいずれかを指定することができます。
(JPEG以外のフォーマットを指定した場合でも、拡張子はjp2のままになるので注意してください)
^p
	フォーマット文字列     形式
	----------------------------------------
		mif	    My Image Format
		pnm	    Portable Graymap/Pixmap
		bmp	    Microsoft Bitmap
		ras	    Sun Rasterfile
		jp2	    JPEG2000 JP2 File Format Syntax
		jpc	    JPEG2000 Code Stream Syntax
		jpg	    JPEG
		pgx	    JPEG2000 VM Format
^p
オプション文字列により、付加設定を行なうことができます。
^p
	例:
		cvj2opt "jp2","rate=0.1"
		cvsave "test2000.jp2"
^p
オプション文字列は、フォーマットごとに設定方法が異なります。
詳しくは、jasperライブラリに含まれる、コマンドラインツール
jasperのオプションを参照してください。
^p
http://www.ece.uvic.ca/~mdadams/jasper/
^p
%href
cvsave



