1: 2011-07-30 (Sat) 23:08:38 iseki  |
Cur: 2011-07-30 (Sat) 23:10:09 iseki  |
| - | BIN_API MSGraph<sWord>* bin_proc(MSGraph<sWord>* vp) | + | *** bin_proc [#k8f0d4ea] |
| - | { | + | BIN_API MSGraph<sWord>* bin_proc(MSGraph<sWord>* vp) |
| - | MSGraph<sWord>* xp = NULL; | + | { |
| - | | + | MSGraph<sWord>* xp = NULL; |
| - | | + | |
| - | // 整数値入力用ダイアログ | + | // 整数値入力用ダイアログ |
| - | int val = 0; | + | int val = 0; |
| - | BOOL isok = InputNumDLG("しきい値", &val); | + | BOOL isok = InputNumDLG("しきい値", &val); |
| - | if (!isok) { | + | if (!isok) { |
| - | xp = new MSGraph<sWord>(); | + | xp = new MSGraph<sWord>(); |
| - | xp->state = ERROR_GRAPH_CANCEL; | + | xp->state = ERROR_GRAPH_CANCEL; |
| - | return xp; | + | 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); | + | // 入力 vp, 出力 xp, 閾値 val |
| - | | + | // vp->xs: 画像のXサイズ,vp->ys: 画像のYサイズ,vp->zs: 画像のZサイズ |
| - | for (int k=0; k<xp->zs; k++) { | + | // vp->point(i,j,k): 画像の (i,j,k) 位置の画素値への参照 |
| - | for (int j=0; j<xp->ys; j++) { | + | // vp->max: vpの濃度値の最高, vp->min: vpの濃度値の最低 |
| - | for (int i=0; i<vp->xs; i++) { | + | // vp->color: カラーモード GRAPH_COLOR_MONO: モノクロ,GRAPH_COLOR_RGB: RGBカラー |
| - | if (vp->point(i,j,k)>=val) xp->point(i,j,k) = vp->max; | + | ///////////////////////////////////////////////////////////////////////////////////////////// |
| - | else xp->point(i,j,k) = vp->min; | + | |
| - | } | + | 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++) { |
| - | xp->color = vp->color; // カラーモード | + | 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; | + | return xp; |
| | } | | } |