From 1e807f48798c2de99c55111eae0537e5317dcb6f Mon Sep 17 00:00:00 2001 From: Takuo Yasunaga Date: Sat, 8 Aug 2015 11:55:31 +0900 Subject: [PATCH] Modified: lmrcImageTranspose new file: include/lmrcImageTranspose.h modified: src/Objects/DataManip/mrcImage/src/.CHeader new file: src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.c new file: src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.h modified: src/Tools/mrcImage/mrcImageTranspose/src/mrcImageTranspose.c --- include/lmrcImageTranspose.h | 45 ++++++ src/Objects/DataManip/mrcImage/src/.CHeader | 1 + .../DataManip/mrcImage/src/lmrcImageTranspose.c | 127 +++++++++++++++++ .../mrcImage/src/lmrcImageTranspose.c.org | 155 +++++++++++++++++++++ .../DataManip/mrcImage/src/lmrcImageTranspose.h | 45 ++++++ .../mrcImage/src/lmrcImageTranspose.h.org | 0 .../mrcImageTranspose/src/mrcImageTranspose.c | 82 +---------- 7 files changed, 376 insertions(+), 79 deletions(-) create mode 100644 include/lmrcImageTranspose.h create mode 100644 src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.c create mode 100755 src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.c.org create mode 100644 src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.h create mode 100644 src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.h.org diff --git a/include/lmrcImageTranspose.h b/include/lmrcImageTranspose.h new file mode 100644 index 0000000000..528bd048ed --- /dev/null +++ b/include/lmrcImageTranspose.h @@ -0,0 +1,45 @@ +/* +# lmrcImageTranspose.h : $Revision$ +# $Date$ +# Created by $Author$ +# Usage : lmrcImageTranspose.h +# Attention +# $Loccker$ +# $State$ +# +*/ +/* $Log$ */ +#ifndef LMRCIMAGE_TANSPOSE_H +#define LMRCIMAGE_TANSPOSE_H + +#include +#include "mrcImage.h" + +/* constant begin */ + + +/* constant end */ + +/* struct begin */ + + +/* struct end */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* prototype begin */ + +void lmrcImageTransposeUsage(FILE* fpt); +void lmrcImageTranspose(mrcImage* out , mrcImage* in ,int mode ,int mode2); + + + +/* prototype end */ + +#ifdef __cplusplus +}; +#endif + +#endif /* XXXX */ diff --git a/src/Objects/DataManip/mrcImage/src/.CHeader b/src/Objects/DataManip/mrcImage/src/.CHeader index 126d0b5ca5..a228d81755 100755 --- a/src/Objects/DataManip/mrcImage/src/.CHeader +++ b/src/Objects/DataManip/mrcImage/src/.CHeader @@ -87,6 +87,7 @@ lmrcImageSummationCalculate.h \ lmrcImageSymmetryFind.h \ lmrcImageTone.h \ lmrcImageTransformDescartesIntoPolar.h \ +lmrcImageTranspose.h \ lmrcImageTriming.h \ lmrcImageUnsharpening.h \ lmrcImageVolumeCalc.h \ diff --git a/src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.c b/src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.c new file mode 100644 index 0000000000..142f49fba1 --- /dev/null +++ b/src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.c @@ -0,0 +1,127 @@ +/* +# %M% %Y% %I% +# The latest update : %G% at %U% +# +#%Z% lmrcImageTranspose ver %I% +#%Z% Created by +#%Z% +#%Z% Usage : lmrcImageTranspose +#%Z% Attention +#%Z% +*/ +static char __sccs_id[] = "%Z%lmrcImageTranspose ver%I%; Date:%D% %Z%"; + + +#include +#include +#include +#include + +#define DEBUG +#include "genUtil.h" +#include "mrcImage.h" +#include "mrcRefUtil.h" +#include "./lmrcImageTranspose.h" + + +void +lmrcImageTransposeUsage(FILE* fpt) +{ +fprintf(stdout ,"----- mode1 -----\n"); +fprintf(stdout ,"0:+90degree in xy plane around z-axis: x->+y\n"); +fprintf(stdout ,"1:-90degree in xy plane around z-axis: x->-y\n"); +fprintf(stdout ,"2:+90degree in yz plane around x-axis: y->+z\n"); +fprintf(stdout ,"3:-90degree in yz plane around x-axis: y->-z\n"); +fprintf(stdout ,"4:+90degree in zx plane around y-axis: z->+x\n"); +fprintf(stdout ,"5:-90degree in zx plane around y-axis: z->-x\n"); +fprintf(stdout ,"----- mode2 -----\n"); +fprintf(stdout ,"0: Image\n"); +fprintf(stdout ,"1: Ref Image(mode1 =0 or 1)\n"); +} + +void lmrcImageTranspose(mrcImage* out , mrcImage* in ,int mode ,int mode2) +{ + +/* variables */ + int x,y,ox,oy,oz,flag,z; + double data; + mrcRefHeader header; + +/* Initialization */ + out->Header = in->Header; + switch (mode){ + case 0: + case 1: { + out->HeaderN.x = in->HeaderN.y; + out->HeaderN.y = in->HeaderN.x; + break; + } + case 2: + case 3: { + out->HeaderN.y = in->HeaderN.z; + out->HeaderN.z = in->HeaderN.y; + } + case 4: + case 5: { + out->HeaderN.z = in->HeaderN.x; + out->HeaderN.x = in->HeaderN.z; + } + } + mrcInit(out,NULL); + +/* begin */ + flag = 0; + if (mode2){ + flag = 1; + lmrcRefHeaderGet(&header ,in); + lmrcRefHeaderSet(out ,&header); + } + for (z=flag; z < in->HeaderN.z ;z++){ + for (y=0; y < in->HeaderN.y ;y++){ + for (x=0; x < in->HeaderN.x ;x++){ + mrcPixelDataGet(in ,x ,y ,z ,&data ,mrcPixelRePart ,mrcPixelHowNearest); + switch (mode){ + case 0: + ox = in->HeaderN.y - 1 - y; + oy = x; + oz = z; + break; + case 1: + ox = y; + oy = in->HeaderN.x - 1 - x; + oz = z; + break; + case 2: + ox = x; + oy = in->HeaderN.z - 1 - z; + oz = y; + break; + case 3: + ox = x; + oy = z; + oz = in->HeaderN.y - -1 - y; + break; + case 4: + ox = z; + oy = y; + oz = in->HeaderN.x - 1 - x; + break; + case 5: + ox = in->HeaderN.z - 1 - z; + oy = y; + oz = x; + break; + + } + mrcPixelDataSet(out, ox, oy, oz, data, mrcPixelRePart); + } + } + } + mrcStatDataSet(out,0); +} + + + + + + diff --git a/src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.c.org b/src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.c.org new file mode 100755 index 0000000000..8850151bb7 --- /dev/null +++ b/src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.c.org @@ -0,0 +1,155 @@ +/* +# %M% %Y% %I% +# The latest update : %G% at %U% +# +#%Z% mrcImageTranspose ver %I% +#%Z% Created by +#%Z% +#%Z% Usage : mrcImageTranspose +#%Z% Attention +#%Z% +*/ +static char __sccs_id[] = "%Z%mrcImageTranspose ver%I%; Date:%D% %Z%"; +#include +#include +#include +#include +#define GLOBAL_DECLARATION +#include "../inc/config.h" + +#define DEBUG +#include "genUtil.h" +#include "mrcImage.h" +#include "mrcRefUtil.h" + + +/* prototype */ +void lmrcImageTranspose(mrcImage* out , mrcImage* in ,int mode ,int mode2); + +void +main(int argc, char* argv[]) +{ + long status; + mrcImageTransposeInfo info; + +/* variables */ + mrcImage in; + mrcImage out; + +/* input patameters ,file open */ + init0(&info); + argCheck(&info, argc, argv); + init1(&info); + +/* begin */ + DEBUGPRINT("start "); + mrcFileRead(&in ,info.In ,"in main" ,0); + DEBUGPRINT("read "); + lmrcImageTranspose(&out ,&in ,info.mode ,info.Mode); + DEBUGPRINT("trans "); + mrcFileWrite(&out ,info.Out ,"in main" ,0); + DEBUGPRINT("write "); + exit(EXIT_SUCCESS); +} + +void +additionalUsage() +{ +fprintf(stdout ,"----- mode1 -----\n"); +fprintf(stdout ,"0:+90degree in xy plane around z-axis: x->+y\n"); +fprintf(stdout ,"1:-90degree in xy plane around z-axis: x->-y\n"); +fprintf(stdout ,"2:+90degree in yz plane around x-axis: y->+z\n"); +fprintf(stdout ,"3:-90degree in yz plane around x-axis: y->-z\n"); +fprintf(stdout ,"4:+90degree in zx plane around y-axis: z->+x\n"); +fprintf(stdout ,"5:-90degree in zx plane around y-axis: z->-x\n"); +fprintf(stdout ,"----- mode2 -----\n"); +fprintf(stdout ,"0: Image\n"); +fprintf(stdout ,"1: Ref Image(mode1 =0 or 1)\n"); +} + +void lmrcImageTranspose(mrcImage* out , mrcImage* in ,int mode ,int mode2) +{ + +/* variables */ + int x,y,ox,oy,oz,flag,z; + double data; + mrcRefHeader header; + +/* Initialization */ + out->Header = in->Header; + switch (mode){ + case 0: + case 1: { + out->HeaderN.x = in->HeaderN.y; + out->HeaderN.y = in->HeaderN.x; + break; + } + case 2: + case 3: { + out->HeaderN.y = in->HeaderN.z; + out->HeaderN.z = in->HeaderN.y; + } + case 4: + case 5: { + out->HeaderN.z = in->HeaderN.x; + out->HeaderN.x = in->HeaderN.z; + } + } + mrcInit(out,NULL); + +/* begin */ + flag = 0; + if (mode2){ + flag = 1; + lmrcRefHeaderGet(&header ,in); + lmrcRefHeaderSet(out ,&header); + } + for (z=flag; z < in->HeaderN.z ;z++){ + for (y=0; y < in->HeaderN.y ;y++){ + for (x=0; x < in->HeaderN.x ;x++){ + mrcPixelDataGet(in ,x ,y ,z ,&data ,mrcPixelRePart ,mrcPixelHowNearest); + switch (mode){ + case 0: + ox = in->HeaderN.y - 1 - y; + oy = x; + oz = z; + break; + case 1: + ox = y; + oy = in->HeaderN.x - 1 - x; + oz = z; + break; + case 2: + ox = x; + oy = in->HeaderN.z - 1 - z; + oz = y; + break; + case 3: + ox = x; + oy = z; + oz = in->HeaderN.y - -1 - y; + break; + case 4: + ox = z; + oy = y; + oz = in->HeaderN.x - 1 - x; + break; + case 5: + ox = in->HeaderN.z - 1 - z; + oy = y; + oz = x; + break; + + } + mrcPixelDataSet(out, ox, oy, oz, data, mrcPixelRePart); + } + } + } + mrcStatDataSet(out,0); +} + + + + + + diff --git a/src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.h b/src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.h new file mode 100644 index 0000000000..528bd048ed --- /dev/null +++ b/src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.h @@ -0,0 +1,45 @@ +/* +# lmrcImageTranspose.h : $Revision$ +# $Date$ +# Created by $Author$ +# Usage : lmrcImageTranspose.h +# Attention +# $Loccker$ +# $State$ +# +*/ +/* $Log$ */ +#ifndef LMRCIMAGE_TANSPOSE_H +#define LMRCIMAGE_TANSPOSE_H + +#include +#include "mrcImage.h" + +/* constant begin */ + + +/* constant end */ + +/* struct begin */ + + +/* struct end */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* prototype begin */ + +void lmrcImageTransposeUsage(FILE* fpt); +void lmrcImageTranspose(mrcImage* out , mrcImage* in ,int mode ,int mode2); + + + +/* prototype end */ + +#ifdef __cplusplus +}; +#endif + +#endif /* XXXX */ diff --git a/src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.h.org b/src/Objects/DataManip/mrcImage/src/lmrcImageTranspose.h.org new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/Tools/mrcImage/mrcImageTranspose/src/mrcImageTranspose.c b/src/Tools/mrcImage/mrcImageTranspose/src/mrcImageTranspose.c index 735914a21d..75cfbdc042 100755 --- a/src/Tools/mrcImage/mrcImageTranspose/src/mrcImageTranspose.c +++ b/src/Tools/mrcImage/mrcImageTranspose/src/mrcImageTranspose.c @@ -20,13 +20,12 @@ static char __sccs_id[] = "%Z%mrcImageTranspose ver%I%; Date:%D% %Z%"; #define DEBUG #include "genUtil.h" #include "mrcImage.h" +#include "lmrcImageTranspose.h" #include "mrcRefUtil.h" -/* prototype */ -void lmrcImageTranspose(mrcImage* out , mrcImage* in ,int mode ,int mode2); -void +int main(int argc, char* argv[]) { long status; @@ -55,82 +54,7 @@ main(int argc, char* argv[]) void additionalUsage() { -fprintf(stdout ,"----- mode1 -----\n"); -fprintf(stdout ,"0:+90degree in xy plane\n"); -fprintf(stdout ,"1:-90degree in xy plane\n"); -fprintf(stdout ,"2:+90degree in yz plane\n"); -fprintf(stdout ,"3:-90degree in yz plane\n"); -fprintf(stdout ,"----- mode2 -----\n"); -fprintf(stdout ,"0:2D Image\n"); -fprintf(stdout ,"1:Ref Image(mode1=0 or 1)\n"); -} - -void lmrcImageTranspose(mrcImage* out , mrcImage* in ,int mode ,int mode2) -{ - -/* variables */ - int x,y,ox,oy,oz,flag,z; - double data; - mrcRefHeader header; - -/* Initialization */ - out->Header = in->Header; - switch (mode){ - case 0: - case 1: - out->HeaderN.x = in->HeaderN.y; - out->HeaderN.y = in->HeaderN.x; - break; - case 2: - case 3: - out->HeaderN.y = in->HeaderN.z; - out->HeaderN.z = in->HeaderN.y; - } - mrcInit(out,NULL); - -/* begin */ - flag = 0; - if (mode2){ - flag = 1; - lmrcRefHeaderGet(&header ,in); - lmrcRefHeaderSet(out ,&header); - } - for (z=flag ;z < in->HeaderN.z ;z++){ - for (y=0 ;y < in->HeaderN.y ;y++){ - for (x=0 ;x < in->HeaderN.x ;x++){ - mrcPixelDataGet(in ,x ,y ,z ,&data ,mrcPixelRePart ,mrcPixelHowNearest); - switch (mode){ - case 0: - ox = in->HeaderN.y - y - 1; - oy = x; - oz = z; - break; - case 1: - ox = y; - oy = in->HeaderN.x - x - 1; - oz = z; - break; - case 2: - ox = x; - oy = in->HeaderN.z - z - 1; - oz = y; - break; - case 3: - ox = x; - oy = z; - oz = in->HeaderN.y - y - 1; - break; - - } - mrcPixelDataSet(out ,ox ,oy ,oz ,data, mrcPixelRePart); - } - } - } - mrcStatDataSet(out,0); + lmrcImageTransposeUsage(stderr); } - - - - -- 2.11.0