1: 2011-07-30 (土) 23:08:38 iseki |
現: 2011-07-30 (土) 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; |
| } | | } |