#author("2023-08-29T04:25:31+00:00","default:iseki","iseki")
*** different_proc [#m51b2aa5]
DIFFERENT_API MSGraph<sWord>* different_proc(MSGraph<sWord>* vp)
{
MSGraph<sWord>* xp = NULL;
/////////////////////////////////////////
// 以下に処理コードを書く
// 入力 vp, 出力 xp
/////////////////////////////////////////
/**///////////////////////////////////////////////////////////////////////////////
//
xp = new MSGraph<sWord>(vp->xs, vp->ys, vp->zs);
for (int j=1; j<vp->ys-1; j++) {
for (int i=1; i<vp->xs-1; i++) {
xp->point(i, j) = (vp->point(i+1, j) - vp->point(i-1, j))/2;
}
}
/*////////////////////////////////////////////////////////////////////////////////
// フィルターによる計算
sWord mask[] = { 0, 0, 0,
-1, 0, 1,
0, 0, 0 };
// Filterの作成
MSGraph<sWord>* filter = new MSGraph<sWord>(3, 3); // フィルターのサイズを正確に指定する
filter->set_array(mask); // フィルターへコピー
filter->norm = 2.0; // 規格化の係数
xp = new MSGraph<sWord>();
*xp = MSMaskFilter(*vp, *filter);
// Filterの開放
filter->free();
delete(filter);
/**/
/**///////////////////////////////////////////////////////////////////////////////
// 絶対値の計算
for (int j=0; j<vp->ys; j++) {
for (int i=0; i<vp->xs; i++) {
if (xp->point(i, j)<0) xp->point(i, j) = - xp->point(i, j);
}
}
/**/
/////////////////////////////////////////
// 処理コードはここまで
/////////////////////////////////////////
return xp;
}