jscam.jsのソースコード「SWFの設定変更」
説明
「crocro.jscam」は、クロノス・クラウンの柳井政和が開発しているJavaScirptのライブラリです。「crocro.jscam」を使うと、JavaScriptからWebカメラを扱うことができます。また、簡単な図形認識などを行えます。
このページでは、この「crocro.jscam」のコアになる「jscam.js」(ver 1.1.0)のソースコードのうち、「SWFの設定変更」に相当する部分を掲載します。
ソースコード
以下、ソースコードです。
/**
* @variable crocro.jscam.setFilter(fltrArr)
* @title カメラのフィルタ設定
* @description
*
* カメラに入力した映像に対して、処理を行わせる命令を、配列で指定します。
* 「["bin", "label"]」のように指定します。命令は順番が正しくなければなりません。
*
* 命令には、以下を指定可能です。「要 ~」と書いてある場合は、事前にその処理が必要になります。
*
* <div>bin - 2値化。</div>
* <div>label - ラベリング(要 2値化)。</div>
* <div>drawLabel - ラベル描画(要 ラベリング)。</div>
* <div>detectDots - ドット・パターン検知(要 ラベリング)。</div>
* <div>drawDots - ドット・パターン描画(要 ドット・パターン検知)。</div>
* <div>drawClipDots - ドット・パターン切抜き描画(要 ドット・パターン検知)。</div>
* <div>detectMarker - マーカー検知(要 ラベリング)。</div>
* <div>drawMarker - マーカー描画(要 マーカー検知)。</div>
* <div>showPaint - 2値化、ラベリングなどの描画を画面に反映させる。</div>
* <div>hidePaint - 2値化、ラベリングなどの描画を画面に反映させない。</div>
*
* @param fltrArr カメラの映像に対して処理させる内容の配列。
*/
//== SwfCamのフィルタ設定
crocro.jscam.setFilter = function(fltrArr) {
var swfCam = crocro.jscam.swfCam;
try {
if (swfCam.checkEnable()) {
swfCam.setFilter(fltrArr); // 即時変更
return;
}
} catch(e) {}
setTimeout(function(){ // 待機実行
crocro.jscam.setFilter(fltrArr);
}, 1000);
};
/**
* @variable crocro.jscam.setLabelCutOff(minPrm, maxPrm)
* @title ラベル・カットオフ設定
* @description
*
* ラベルとして認識するドット数の範囲を指定します。
* デフォルトでは、最小値が10、最大値が57600です。
* minPrm、maxPrmともに-1を指定した場合は、デフォルト値に戻ります。
*
* @param minPrm 最小値。
* @param maxPrm 最大値。
*/
//== SwfCamのラベル・カットオフ設定
crocro.jscam.setsetLabelCutOff = function(minPrm, maxPrm) {
var swfCam = crocro.jscam.swfCam;
try {
if (swfCam.checkEnable()) {
swfCam.setLabelCutOff(parseInt(minPrm), parseInt(maxPrm)); // 即時変更
return;
}
} catch(e) {}
setTimeout(function(){ // 待機実行
crocro.jscam.setsetLabelCutOff(minPrm, maxPrm);
}, 1000);
};
/**
* @variable crocro.jscam.setDots(dotPttrnArr)
* @title ドット・パターンの設定
* @description
*
* 検知させるドット・パターンを配列で設定します。
* 4×4の0, 1の配列で指定します。
*
* [[1,1,0,1],<br>
* [1,0,0,1],<br>
* [0,0,0,1],<br>
* [1,1,1,1]]
*
* 配列は[x][y]の向きになります。
* 上記の配列だとxyが逆になるので、swapXYでひっくり返すとよいです。
*
* var dotsArr = crocro.jscam.util.swapXY(4, 4, dotPttrnArr);
*
* @param dotPttrnArr ドット・パターンの配列。
*/
//== SwfCamのドット・パターンの設定
crocro.jscam.setDots = function(dotPttrnArr) {
var swfCam = crocro.jscam.swfCam;
try {
if (swfCam.checkEnable()) {
swfCam.setDots(dotPttrnArr); // 即時変更
return;
}
} catch(e) {}
setTimeout(function(){ // 待機実行
crocro.jscam.setDots(dotPttrnArr);
}, 1000);
};
/**
* @variable crocro.jscam.setMarker(mrkrArr)
* @title マーカーの設定
* @description
*
* 検知させるマーカーを配列で設定します。
* 正方形の配列で指定します。サンプルは16マスですが、16でなくても構いません。
*
* [[1,1,0,1],<br>
* [1,0,0,1],<br>
* [0,0,0,1],<br>
* [1,1,1,1]]
*
* 配列は[x][y]の向きになります。
* 上記の配列だとxyが逆になるので、swapXYでひっくり返すとよいです。
*
* var mrkrArr = crocro.jscam.util.swapXY(4, 4, mrkrArr);
*
* @param mrkrArr マーカーの配列。
*/
//== SwfCamのマーカーの設定
crocro.jscam.setMarker = function(mrkrArr) {
var swfCam = crocro.jscam.swfCam;
try {
if (swfCam.checkEnable()) {
swfCam.setMarker(mrkrArr, mrkrArr.length); // 即時変更
return;
}
} catch(e) {}
setTimeout(function(){ // 待機実行
crocro.jscam.setMarker(mrkrArr, mrkrArr.length);
}, 1000);
};
/**
* @variable crocro.jscam.setMarkerMatchThreshold(newPrm)
* @title マーカー一致閾値の設定
* @description
*
* マーカーの形に、何パーセント以上一致していれば一致と見なすかを設定します。
* デフォルトは80です。newPrmに-1を指定した場合は、デフォルト値に戻ります。
*
* @param newPrm 新しい数値。
*/
//== SwfCamのマーカー一致閾値の設定
crocro.jscam.setMarkerMatchThreshold = function(newPrm) {
var swfCam = crocro.jscam.swfCam;
try {
if (swfCam.checkEnable()) {
swfCam.setMarkerMatchThreshold(parseInt(newPrm)); // 即時変更
return;
}
} catch(e) {}
setTimeout(function(){ // 待機実行
crocro.jscam.setMarkerMatchThreshold(newPrm);
}, 1000);
};







