#author("2023-08-29T04:24:57+00:00","default:iseki","iseki")
*** bin_proc [#k8f0d4ea]
BIN_API MSGraph<sWord>* bin_proc(MSGraph<sWord>* vp)
{
MSGraph<sWord>* xp = NULL;
// 整数値入力用ダイアログ
int val = 0;
BOOL isok = InputNumDLG("しきい値", &val);
if (!isok) {
xp = new MSGraph<sWord>();
xp->state = ERROR_GRAPH_CANCEL;
return xp;
}
/////////////////////////////////////////////////////////////////////////////////////////////
// 以下に処理コードを書く
// 入力 vp, 出力 xp, 閾値 val
// vp->xs: 画像のXサイズ,vp->ys: 画像のYサイズ,vp->zs: 画像のZサイズ
// vp->point(i,j,k): 画像の (i,j,k) 位置の画素値への参照
// vp->max: vpの濃度値の最高, vp->min: vpの濃度値の最低
// vp->color: カラーモード GRAPH_COLOR_MONO: モノクロ,GRAPH_COLOR_RGB: RGBカラー
/////////////////////////////////////////////////////////////////////////////////////////////
xp = new MSGraph<sWord>(vp->xs, vp->ys, vp->zs);
for (int k=0; k<xp->zs; k++) {
for (int j=0; j<xp->ys; j++) {
for (int i=0; i<vp->xs; i++) {
if (vp->point(i,j,k)>=val) xp->point(i,j,k) = vp->max;
else xp->point(i,j,k) = vp->min;
}
}
}
xp->color = vp->color; // カラーモード
/////////////////////////////////////////////////////////////////////////////////////////////
// 処理コードはここまで
//////////////////////////////////////////////////////////////////////////////////////////////
return xp;
}