# a script that loads the command.
set auto_index(libraryLoad) [list source [file join $dir ctfDisplay.wish]]
+set auto_index(ctfDisplayDefault) [list source [file join $dir ctfDisplay.wish]]
set auto_index(::CTF2D::Init) [list source [file join $dir ctfDisplay.wish]]
set auto_index(::CTF2D::ctfInfoSync) [list source [file join $dir ctfDisplay.wish]]
set auto_index(::CTF2D::ctfInfoUpload) [list source [file join $dir ctfDisplay.wish]]
set auto_index(::CTF2D::CTFCalculation) [list source [file join $dir ctfDisplay.wish]]
set auto_index(::CTF2D::ScatteringCalc) [list source [file join $dir ctfDisplay.wish]]
set auto_index(::CTF2D::ctfInfoSave) [list source [file join $dir ctfDisplay.wish]]
+set auto_index(::CTF2D::ctfInfoSaveDefaultDir) [list source [file join $dir ctfDisplay.wish]]
+set auto_index(::CTF2D::ctfInfoSaveDefault) [list source [file join $dir ctfDisplay.wish]]
set auto_index(::CTF2D::ctfInfoLoad) [list source [file join $dir ctfDisplay.wish]]
+set auto_index(::CTF2D::dummyFunc) [list source [file join $dir ctfDisplay.wish]]
# The latest update : %G% at %U%
#
#%Z% lmrcFFTCentralSection ver %I%
-#%Z% Created by
+#%Z% Created by
#%Z%
-#%Z% Usage : lmrcFFTCentralSection
+#%Z% Usage : lmrcFFTCentralSection
#%Z% Attention
#%Z%
*/
#include "Memory.h"
#include "./lmrcFFTCentralSection.h"
void
-lmrcImageFFTRhoFilter(mrcImage* volFT, mrcImage* count, lmrcFFTCentralSectionInfo* linfo, int mode)
-{
- mrcImageParaTypeReal X3d, Y3d, Z3d;
- double re3d, im3d, sum;
-
- for(Z3d = (-volFT->HeaderN.z/2.0)+0.5; Z3d < ( volFT->HeaderN.z/2.0)-0.5; Z3d++) {
- for(Y3d = (-volFT->HeaderN.y/2.0)+0.5; Y3d < (volFT->HeaderN.y/2.0)-0.5; Y3d++) {
- for(X3d = 0; X3d <= (volFT->HeaderN.x/2.0)-0.5; X3d++) {
- mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
- mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
- mrcPixelDataGet(count, X3d, Y3d, Z3d, &sum, mrcPixelRePart, linfo->InterpMode);
- if(0<sum) {
- re3d /= sum;
- im3d /= sum;
- } else {
- re3d = 0;
- im3d = 0;
- }
- mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d, mrcPixelRePart);
- mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d, mrcPixelImPart);
- }
- }
- }
-}
+lmrcImageFFTRhoFilter(mrcImage* volFT, mrcImage* count, lmrcImageFFTCentralSectionInfo* linfo ,int mode)
+ {
+ mrcImageParaTypeReal X3d, Y3d, Z3d;
+ double re3d, im3d, sum;
+
+ for(Z3d = (-volFT->HeaderN.z/2.0)+0.5; Z3d < (volFT->HeaderN.z/2.0)-0.5; Z3d++){
+ for(Y3d = (-volFT->HeaderN.y/2.0)+0.5; Y3d < (volFT->HeaderN.y/2.0)-0.5; Y3d++){
+ for(X3d = 0; X3d < (volFT->HeaderN.x/2.0)-0.5; X3d++){
+ mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
+ mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
+ mrcPixelDataGet(count, X3d, Y3d, Z3d, &sum, mrcPixelRePart, linfo->InterpMode);
+ if(0 < sum){
+ re3d /= sum;
+ im3d /= sum;
+ } else {
+ re3d = 0;
+ im3d = 0;
+ }
+ mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d, mrcPixelRePart);
+ mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d, mrcPixelImPart);
+ }
+ }
+ }
+ }
+
-void
-lmrcImageFFTCentralSectionPut(mrcImage* volFT, mrcImage* count, mrcImage* template3D, mrcImage* in, double probability, lmrcFFTCentralSectionInfo* linfo, int* c, int mode)
-{
- mrcImageParaTypeReal X2d, Y2d, Z2d;
- mrcImageParaTypeReal X3d, Y3d, Z3d;
- int i, n, k0;
- Matrix3D mat;
- double re3d, im3d;
- double re3d0=0, im3d0=0,counter=0;
- double re2d, im2d;
- double re2d0, im2d0;
- double phaseShift;
- //mrcImage* volFT;
-
- DEBUGPRINT("SectionPut Start\n");
-
- if(c==0) {
- volFT->Header = template3D->Header;
- count->Header = template3D->Header;
- mrcInit(volFT, NULL);
- mrcInit(count, NULL);
- }
- c++;
-
- lmrcImageFFTCenterChange(volFT, 0);
-
- matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);
-
- for(Y2d = -in->HeaderN.y/2.0; Y2d < in->HeaderN.y/2.0; Y2d++) {
- for(X2d = -in->HeaderN.y/2.0; X2d <= in->HeaderN.x/2.0; X2d++) {
- X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
- Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0);
- Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
-
- if((-volFT->HeaderN.x/2)-0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
- &&(-volFT->HeaderN.y/2)-0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
- &&(-volFT->HeaderN.z/2)-0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5 ){
- mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
- mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
- } else {
- re3d = 0;
- im3d = 0;
- }
- phaseShift = 2*M_PI*(-linfo->TransX*X2d/in->HeaderN.x - linfo->TransY*Y2d/in->HeaderN.y);
-
- re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
- im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
-
-// DEBUGPRINT5("coord: %f %f <- %f %f %f\n", X2d, Y2d, X3d, Y3d, Z3d);
-// DEBUGPRINT4("data: %f %f <- %f %f \n", re2d, im2d, re3d, im3d);
-// DEBUGPRINT5("3d: %f %f at %f %f %f\n", re3d, im3d, X3d, Y3d, Z3d);
-// DEBUGPRINT4("2d: %f %f at %f %f \n", re2d, im2d, X2d, Y2d);
-
- mrcPixelDataGet(in, X2d, Y2d, 0, &re2d0, mrcPixelRePart, linfo->InterpMode);
- mrcPixelDataGet(in, X2d, Y2d, 0, &im2d0, mrcPixelImPart, linfo->InterpMode);
- re3d = re2d+re2d0*probability;
- im3d = im2d+im2d0*probability;
-
- re3d0 = re3d*cos(-phaseShift) - im3d*sin(-phaseShift);
- im3d0 = re3d*sin(-phaseShift) + im3d*cos(-phaseShift);
-
- if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
- &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
- &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5) {
- mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d0, mrcPixelRePart);
- mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d0, mrcPixelImPart);
- }
-
- if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
- &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
- &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5) {
- mrcPixelDataGet(count, X3d, Y3d, Z3d, &counter, mrcPixelRePart, linfo->InterpMode);
- mrcPixelDataSet(count, X3d, Y3d, Z3d, counter+probability, mrcPixelRePart);
- }
- }
- }
-
- lmrcImageFFTCenterChange(volFT, 0);
-}
-void
-lmrcFFTCentralSectionGet(mrcImage* out, mrcImage* template, mrcImage* volume, lmrcFFTCentralSectionInfo* linfo, int mode)
+void
+lmrcImageFFTCentralSectionPut(mrcImage* volFT, mrcImage* count, mrcImage* template3D, mrcImage* in, lmrcFFTCentralSectionInfo* linfo, int* c, int mode)
{
- mrcImageParaTypeReal X2d, Y2d, Z2d;
- mrcImageParaTypeReal X3d, Y3d, Z3d;
- int i, n, k0;
- Matrix3D mat;
- double re3d, im3d;
- double re2d, im2d;
- double phaseShift;
- mrcImage* volFT;
- double weight;
-
- if(IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
- volFT = volume;
- } else {
- volFT = memoryAllocate(sizeof(mrcImage), "in lmrcFFTCentralSectionGet");
- lmrcImageFFT(volFT, volume, 0);
- }
-
- out->Header = template->Header;
- mrcInit(out, NULL);
-
- weight = 1.0/sqrt(volFT->HeaderN.x*volFT->HeaderN.y*volFT->HeaderN.z)*sqrt(out->HeaderN.x*out->HeaderN.y);
-
- lmrcImageFFTCenterChange(volFT, 0);
-
- matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);
-
- for(Y2d = -out->HeaderN.y/2.0; Y2d < out->HeaderN.y/2.0; Y2d++) {
- for(X2d = 0; X2d <= out->HeaderN.x/2.0; X2d++) {
- X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
- Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0);
- Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
-
- if(-volFT->HeaderN.x/2 < X3d && X3d < volFT->HeaderN.x/2
- &&-volFT->HeaderN.y/2 < Y3d && Y3d < volFT->HeaderN.y/2
- &&-volFT->HeaderN.z/2 < Z3d && Z3d < volFT->HeaderN.z/2) {
- mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
- mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
- } else {
- re3d = 0;
- im3d = 0;
- }
- phaseShift = 2*M_PI*(-linfo->TransX*X2d/out->HeaderN.x - linfo->TransY*Y2d/out->HeaderN.y);
-
- re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
- im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
-
- DEBUGPRINT5("coord: %f %f <- %f %f %f\n", X2d, Y2d, X3d, Y3d, Z3d);
- DEBUGPRINT4("data: %f %f <- %f %f \n", re2d, im2d, re3d, im3d);
- DEBUGPRINT5("3d: %f %f at %f %f %f\n", re3d, im3d, X3d, Y3d, Z3d);
- DEBUGPRINT4("2d: %f %f at %f %f \n", re2d, im2d, X2d, Y2d);
- mrcPixelDataSet(out, X2d, Y2d, 0, re2d*weight, mrcPixelRePart);
- mrcPixelDataSet(out, X2d, Y2d, 0, im2d*weight, mrcPixelImPart);
- }
- }
-
- lmrcImageFFTCenterChange(volFT, 0);
- lmrcImageFFTCenterChange(out, 0);
-
- if(!IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
- mrcImageFree(volFT, 0);
- memoryFree(volFT);
- }
+ mrcImageParaTypeReal X2d, Y2d, Z2d;
+ mrcImageParaTypeReal X3d, Y3d, Z3d;
+ int i, n, k0;
+ Matrix3D mat;
+ double re3d, im3d;
+ double re3d0=0, im3d0=0, counter=0;
+ double re2d, im2d;
+ double re2d0, im2d0;
+ double phaseShift;
+ //mrcImage* volFT;
+
+ DEBUGPRINT("SectionPut Start\n");
+
+ if(c==0){
+ volFT->Header = template3D->Header;
+ count->Header = template3D->Header;
+ mrcInit(volFT, NULL);
+ mrcInit(count, NULL);
+ }
+ c++;
+ lmrcImageFFTCenterChange(volFT, 0);
+
+ matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);
+
+ for(Y2d = -in->HeaderN.y/2.0; Y2d < in->HeaderN.y/2.0; Y2d++) {
+ for(X2d = -in->HeaderN.y/2.0; X2d < in->HeaderN.x/2.0; X2d++) {
+ X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
+ Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0);
+ Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
+
+ if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
+ &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
+ &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5{
+ mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
+ mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
+ } else {
+ re3d = 0;
+ im3d = 0;
+ }
+ phaseShift = 2*M_PI*(-linfo->TransX*X2d/out->HeaderN.x - linfo->TransY*Y2d/out->HeaderN.y);
+
+ re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
+ im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
+
+ mrcPixelDataGet(in, X2d, Y2d, 0, &re2d0, mrcPixelRePart, linfo->InterpMode);
+ mrcPixelDataGet(in, X2d, Y2d, 0, &im2d0, mrcPixelImPart, linfo->InterpMode);
+
+ re3d = re2d+re2d0*probability;
+ im3d = im2d+im2d0*probability;
+
+ re3d0 = re3d*cos(-phaseShift) - im3d*sin(-phaseShift);
+ im3d0 = re3d*sin(-phaseShift) - im3d*cos(-phaseShift);
+
+ if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
+ &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
+ &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5{
+
+ mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d0, mrcPixelRePart);
+ mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d0, mrcPixelImPart);
+ }
+
+ if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
+ &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
+ &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5{
+
+ mrcPixelDataGet(count, X3d, Y3d, Z3d, &counter, mrcPixelRePart, linfo->InterpMode);
+ mrcPixelDataSet(count, X3d, Y3d, Z3d, 0, counter+probability, mrcPixelRePart);
+ }
+ }
+ }
+
+ lmrcImageFFTCenterChange(volFT, 0);
+
+
+ if(!IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
+ mrcImageFree(volFT, 0);
+ memoryFree(volFT);
+ }
}
-/*
-# %M% %Y% %I%
-# The latest update : %G% at %U%
-#
-#%Z% lmrcFFTCentralSection ver %I%
-#%Z% Created by
-#%Z%
-#%Z% Usage : lmrcFFTCentralSection
-#%Z% Attention
-#%Z%
-*/
-static char __sccs_id[] = "%Z%lmrcFFTCentralSection ver%I%; Date:%D% %Z%";
-
-#undef DEBUG
-#include "genUtil.h"
-
-#include "Memory.h"
-#include "./lmrcFFTCentralSection.h"
-void
-lmrcImageFFTRhoFilter(mrcImage* volFT, mrcImage* count, lmrcFFTCentralSectionInfo* linfo, int mode)
-{
- mrcImageParaTypeReal X3d, Y3d, Z3d;
- double re3d, im3d, sum;
-
-// for(Z3d = (-volFT->HeaderN.z/2.0)+0.5; Z3d < ( volFT->HeaderN.z/2.0)-0.5; Z3d++) {
-// for(Y3d = (-volFT->HeaderN.y/2.0)+0.5; Y3d < (volFT->HeaderN.y/2.0)-0.5; Y3d++) {
-// for(X3d = 1; X3d < (volFT->HeaderN.x/2.0)-0.5; X3d++) {
- mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
- mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
- mrcPixelDataGet(count, X3d, Y3d, Z3d, &sum, mrcPixelRePart, linfo->InterpMode);
- if(0<sum) {
- re3d /= sum;
- im3d /= sum;
- } else {
- re3d = 0;
- im3d = 0;
- }
- mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d, mrcPixelRePart);
- mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d, mrcPixelImPart);
- }
- }
- }
-}
-
-void
-lmrcImageFFTCentralSectionPut(mrcImage* volFT, mrcImage* count, mrcImage* template3D, mrcImage* in, double probability, lmrcFFTCentralSectionInfo* linfo, int* c, int mode)
-{
- mrcImageParaTypeReal X2d, Y2d, Z2d;
- mrcImageParaTypeReal X3d, Y3d, Z3d;
- int i, n, k0;
- Matrix3D mat;
- double re3d, im3d;
- double re3d0, im3d0;
- double re2d, im2d;
- double re2d0, im2d0;
- double phaseShift;
- //mrcImage* volFT;
-
- DEBUGPRINT("SectionPut Start\n");
-
- if(c==0) {
- volFT->Header = template3D->Header;
- count->Header = template3D->Header;
- mrcInit(volFT, NULL);
- mrcInit(count, NULL);
- }
- c++;
-
- lmrcImageFFTCenterChange(volFT, 0);
-
- matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);
-
- for(Y2d = -in->HeaderN.y/2.0; Y2d < in->HeaderN.y/2.0; Y2d++) {
- for(X2d = 0; X2d < in->HeaderN.x/2.0; X2d++) {
- X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
- Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0);
- Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
-
- if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
- &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
- &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5 ){
- mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
- mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
- } else {
- re3d = 0;
- im3d = 0;
- }
- phaseShift = 2*M_PI*(-linfo->TransX*X2d/in->HeaderN.x - linfo->TransY*Y2d/in->HeaderN.y);
-
- re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
- im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
-
-// DEBUGPRINT5("coord: %f %f <- %f %f %f\n", X2d, Y2d, X3d, Y3d, Z3d);
-// DEBUGPRINT4("data: %f %f <- %f %f \n", re2d, im2d, re3d, im3d);
-// DEBUGPRINT5("3d: %f %f at %f %f %f\n", re3d, im3d, X3d, Y3d, Z3d);
-// DEBUGPRINT4("2d: %f %f at %f %f \n", re2d, im2d, X2d, Y2d);
-
- mrcPixelDataGet(in, X2d, Y2d, 0, &re2d0, mrcPixelRePart, linfo->InterpMode);
- mrcPixelDataGet(in, X2d, Y2d, 0, &im2d0, mrcPixelImPart, linfo->InterpMode);
-
- re3d = re2d+re2d0*probability;
- im3d = im2d+im2d0*probability;
-
- re3d0 = re3d*cos(-phaseShift) - im3d*sin(-phaseShift);
- im3d0 = re3d*sin(-phaseShift) + im3d*cos(-phaseShift);
- // DEBUGPRINT4("new data: %f %f <- %f %f \n", re2d0, im2d0, re3d0, im3d0);
-
- if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
- &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
- &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5) {
- mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d0, mrcPixelRePart);
- mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d0, mrcPixelImPart);
- }
-
- if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
- &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
- &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5) {
- mrcPixelDataGet(count, X3d, Y3d, Z3d, &re3d0, mrcPixelRePart, linfo->InterpMode);
- // DEBUGPRINT1("count: %f \n", re3d0);
- mrcPixelDataSet(count, X3d, Y3d, Z3d, re3d0+1, mrcPixelRePart);
- }
- }
- }
-
- lmrcImageFFTCenterChange(volFT, 0);
-/*
- if(!IsFT(volFT, "lmrcFFTCentralSectionGet", 0)){
- mrcImageFree(volFT, 0);
- memoryFree(volFT);
- }*/
-}
-
-void
-lmrcFFTCentralSectionGet(mrcImage* out, mrcImage* template, mrcImage* volume, lmrcFFTCentralSectionInfo* linfo, int mode)
-{
- mrcImageParaTypeReal X2d, Y2d, Z2d;
- mrcImageParaTypeReal X3d, Y3d, Z3d;
- int i, n, k0;
- Matrix3D mat;
- double re3d, im3d;
- double re2d, im2d;
- double phaseShift;
- mrcImage* volFT;
- double weight;
-
- if(IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
- volFT = volume;
- } else {
- volFT = memoryAllocate(sizeof(mrcImage), "in lmrcFFTCentralSectionGet");
- lmrcImageFFT(volFT, volume, 0);
- }
-
- out->Header = template->Header;
- mrcInit(out, NULL);
-
- weight = 1.0/sqrt(volFT->HeaderN.x*volFT->HeaderN.y*volFT->HeaderN.z)*sqrt(out->HeaderN.x*out->HeaderN.y);
-
- lmrcImageFFTCenterChange(volFT, 0);
-
- matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);
-
- for(Y2d = -out->HeaderN.y/2.0; Y2d < out->HeaderN.y/2.0; Y2d++) {
- for(X2d = 0; X2d <= out->HeaderN.x/2.0; X2d++) {
- X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
- Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0);
- Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
-
- if(-volFT->HeaderN.x/2 < X3d && X3d < volFT->HeaderN.x/2
- &&-volFT->HeaderN.y/2 < Y3d && Y3d < volFT->HeaderN.y/2
- &&-volFT->HeaderN.z/2 < Z3d && Z3d < volFT->HeaderN.z/2) {
- mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
- mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
- } else {
- re3d = 0;
- im3d = 0;
- }
- phaseShift = 2*M_PI*(-linfo->TransX*X2d/out->HeaderN.x - linfo->TransY*Y2d/out->HeaderN.y);
-
- re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
- im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
-
- DEBUGPRINT5("coord: %f %f <- %f %f %f\n", X2d, Y2d, X3d, Y3d, Z3d);
- DEBUGPRINT4("data: %f %f <- %f %f \n", re2d, im2d, re3d, im3d);
- DEBUGPRINT5("3d: %f %f at %f %f %f\n", re3d, im3d, X3d, Y3d, Z3d);
- DEBUGPRINT4("2d: %f %f at %f %f \n", re2d, im2d, X2d, Y2d);
- mrcPixelDataSet(out, X2d, Y2d, 0, re2d*weight, mrcPixelRePart);
- mrcPixelDataSet(out, X2d, Y2d, 0, im2d*weight, mrcPixelImPart);
- }
- }
-
- lmrcImageFFTCenterChange(volFT, 0);
- lmrcImageFFTCenterChange(out, 0);
-
- if(!IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
- mrcImageFree(volFT, 0);
- memoryFree(volFT);
- }
-}
+a
--- /dev/null
+/*
+# %M% %Y% %I%
+# The latest update : %G% at %U%
+#
+#%Z% lmrcFFTCentralSection ver %I%
+#%Z% Created by
+#%Z%
+#%Z% Usage : lmrcFFTCentralSection
+#%Z% Attention
+#%Z%
+*/
+static char __sccs_id[] = "%Z%lmrcImageFFTSigmaCalc ver%I%; Date:%D% %Z%";
+
+#undef DEBUG
+#include "genUtil.h"
+
+#include "Memory.h"
+#include "./lmrcImageFFTSigmaCalc.h"
+void
+lmrcImageFFTRhoFilter(mrcImage* volFT, mrcImage* count, lmrcImageFFTCentralSectionInfo* linfo ,int mode)
+ {
+ mrcImageParaTypeReal X3d, Y3d, Z3d;
+ double re3d, im3d, sum;
+
+ for(Z3d = (-volFT->HeaderN.z/2.0)+0.5; Z3d < (volFT->HeaderN.z/2.0)-0.5; Z3d++){
+ for(Y3d = (-volFT->HeaderN.y/2.0)+0.5; Y3d < (volFT->HeaderN.y/2.0)-0.5; Y3d++){
+ for(X3d = 0; X3d < (volFT->HeaderN.x/2.0)-0.5; X3d++){
+ mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
+ mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
+ mrcPixelDataGet(count, X3d, Y3d, Z3d, &sum, mrcPixelRePart, linfo->InterpMode);
+ if(0 < sum){
+ re3d /= sum;
+ im3d /= sum;
+ } else {
+ re3d = 0;
+ im3d = 0;
+ }
+ mrcPixelDataSet(volFT, X3d, Y3d, Z3d, re3d, mrcPixelRePart);
+ mrcPixelDataSet(volFT, X3d, Y3d, Z3d, im3d, mrcPixelImPart);
+ }
+ }
+ }
+ }
+
+
+
+void
+lmrcImageFFTCentralSectionPut(mrcImage* volFT, mrcImage* out, mrcImage* count, mrcImage* template3D, mrcImage* in, lmrcFFTCentralSectionInfo* linfo, int* c, int mode)
+{
+ mrcImageParaTypeReal X2d, Y2d, Z2d;
+ mrcImageParaTypeReal X3d, Y3d, Z3d;
+ int i, n, k0;
+ Matrix3D mat;
+ double re3d, im3d;
+ double re3d0=0, im3d0=0, counter=0;
+ double re2d, im2d;
+ double re2d0, im2d0;
+ double reSigma=0, imSigma=0;
+ double phaseShift;
+ //mrcImage* volFT;
+
+ DEBUGPRINT("SectionPut Start\n");
+
+ if(c==0){
+ volFT->Header = template3D->Header;
+ count->Header = template3D->Header;
+ mrcInit(volFT, NULL);
+ mrcInit(count, NULL);
+ }
+ c++;
+ lmrcImageFFTCenterChange(volFT, 0);
+
+ matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);
+
+ for(Y2d = -in->HeaderN.y/2.0; Y2d < in->HeaderN.y/2.0; Y2d++) {
+ for(X2d = -in->HeaderN.y/2.0; X2d < in->HeaderN.x/2.0; X2d++) {
+ X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
+ Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0);
+ Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
+
+ if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
+ &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
+ &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5{
+ mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
+ mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
+ } else {
+ re3d = 0;
+ im3d = 0;
+ }
+ phaseShift = 2*M_PI*(-linfo->TransX*X2d/out->HeaderN.x - linfo->TransY*Y2d/out->HeaderN.y);
+
+ re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
+ im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
+
+ mrcPixelDataGet(in, X2d, Y2d, 0, &re2d0, mrcPixelRePart, linfo->InterpMode);
+ mrcPixelDataGet(in, X2d, Y2d, 0, &im2d0, mrcPixelImPart, linfo->InterpMode);
+
+ re3d = re2d+re2d0*probability;
+ im3d = im2d+im2d0*probability;
+
+ re3d0 = re3d*cos(-phaseShift) - im3d*sin(-phaseShift);
+ im3d0 = re3d*sin(-phaseShift) - im3d*cos(-phaseShift);
+
+ reSigma = probability * (re2d0 - re3d) * (re2d0 - re3d);
+ imSigma = probability * (im2d0 - im3d) * (im2d0 - im3d);
+
+ if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
+ &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
+ &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5{
+
+ mrcPixelDataSet(Sigma, X3d, Y3d, Z3d, reSigma, mrcPixelRePart);
+ }
+
+ if((-volFT->HeaderN.x/2)+0.5 < X3d && X3d < (volFT->HeaderN.x/2)-0.5
+ &&(-volFT->HeaderN.y/2)+0.5 < Y3d && Y3d < (volFT->HeaderN.y/2)-0.5
+ &&(-volFT->HeaderN.z/2)+0.5 < Z3d && Z3d < (volFT->HeaderN.z/2)-0.5{
+
+ mrcPixelDataGet(count, X3d, Y3d, Z3d, &counter, mrcPixelRePart, linfo->InterpMode);
+ mrcPixelDataSet(count, X3d, Y3d, Z3d, 0, counter+probability, mrcPixelRePart);
+ }
+ }
+ }
+
+ lmrcImageFFTCenterChange(volFT, 0);
+
+
+ if(!IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
+ mrcImageFree(volFT, 0);
+ memoryFree(volFT);
+ }
+}
--- /dev/null
+/*
+# %M% %Y% %I%
+# The latest update : %G% at %U%
+#
+#%Z% lmrcFFTCentralSection ver %I%
+#%Z% Created by
+#%Z%
+#%Z% Usage : lmrcFFTCentralSection
+#%Z% Attention
+#%Z%
+*/
+static char __sccs_id[] = "%Z%lmrcFFTCentralSection ver%I%; Date:%D% %Z%";
+
+#undef DEBUG
+#include "genUtil.h"
+
+#include "Memory.h"
+#include "./lmrcFFTCentralSection.h"
+
+void
+lmrcFFTCentralSectionGet(mrcImage* out, mrcImage* template, mrcImage* volume, lmrcFFTCentralSectionInfo* linfo, int mode)
+{
+ mrcImageParaTypeReal X2d, Y2d, Z2d;
+ mrcImageParaTypeReal X3d, Y3d, Z3d;
+ int i, n, k0;
+ Matrix3D mat;
+ double re3d, im3d;
+ double re2d, im2d;
+ double phaseShift;
+ mrcImage* volFT;
+ double weight;
+
+ if(IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
+ volFT = volume;
+ } else {
+ volFT = memoryAllocate(sizeof(mrcImage), "in lmrcFFTCentralSectionGet");
+ lmrcImageFFT(volFT, volume, 0);
+ }
+
+ out->Header = template->Header;
+ mrcInit(out, NULL);
+
+ weight = 1.0/sqrt(volFT->HeaderN.x*volFT->HeaderN.y*volFT->HeaderN.z)*sqrt(out->HeaderN.x*out->HeaderN.y);
+
+ lmrcImageFFTCenterChange(volFT, 0);
+
+ matrix3DRotationAntiSetFollowingEulerAngle(mat, linfo->EulerMode, linfo->Rot1, linfo->Rot2, linfo->Rot3, MATRIX_3D_MODE_INITIALIZE);
+
+ for(Y2d = -out->HeaderN.y/2.0; Y2d < out->HeaderN.y/2.0; Y2d++) {
+ for(X2d = 0; X2d <= out->HeaderN.x/2.0; X2d++) {
+ X3d = mat[0][0]*X2d + mat[1][0]*Y2d; // + mat[2][0]*Z2d(0);
+ Y3d = mat[0][1]*X2d + mat[1][1]*Y2d; // + mat[2][1]*Z2d(0);
+ Z3d = mat[0][2]*X2d + mat[1][2]*Y2d; // + mat[2][2]*Z2d(0);
+
+ if(-volFT->HeaderN.x/2 < X3d && X3d < volFT->HeaderN.x/2
+ &&-volFT->HeaderN.y/2 < Y3d && Y3d < volFT->HeaderN.y/2
+ &&-volFT->HeaderN.z/2 < Z3d && Z3d < volFT->HeaderN.z/2) {
+ mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &re3d, mrcPixelRePart, linfo->InterpMode);
+ mrcPixelDataGet(volFT, X3d, Y3d, Z3d, &im3d, mrcPixelImPart, linfo->InterpMode);
+ } else {
+ re3d = 0;
+ im3d = 0;
+ }
+ phaseShift = 2*M_PI*(-linfo->TransX*X2d/out->HeaderN.x - linfo->TransY*Y2d/out->HeaderN.y);
+
+ re2d = re3d*cos(phaseShift) - im3d*sin(phaseShift);
+ im2d = re3d*sin(phaseShift) + im3d*cos(phaseShift);
+
+ DEBUGPRINT5("coord: %f %f <- %f %f %f\n", X2d, Y2d, X3d, Y3d, Z3d);
+ DEBUGPRINT4("data: %f %f <- %f %f \n", re2d, im2d, re3d, im3d);
+ DEBUGPRINT5("3d: %f %f at %f %f %f\n", re3d, im3d, X3d, Y3d, Z3d);
+ DEBUGPRINT4("2d: %f %f at %f %f \n", re2d, im2d, X2d, Y2d);
+ mrcPixelDataSet(out, X2d, Y2d, 0, re2d*weight, mrcPixelRePart);
+ mrcPixelDataSet(out, X2d, Y2d, 0, im2d*weight, mrcPixelImPart);
+ }
+ }
+
+ lmrcImageFFTCenterChange(volFT, 0);
+ lmrcImageFFTCenterChange(out, 0);
+
+ if(!IsFT(volume, "lmrcFFTCentralSectionGet", 0)) {
+ mrcImageFree(volFT, 0);
+ memoryFree(volFT);
+ }
+}
+
+
+
--- /dev/null
+#ifndef MRCMULTIFFTCENTRALSECTIONSCOMPARE_H
+#define MRCMULTIFFTCENTRALSECTIONSCOMPARE_H
+#include <stdio.h>
+#include <stdlib.h>
+
+#define OPTION_FLAG '-'
+#define OPTION_FLAG_POS (0)
+#define OPTION_POS (1)
+
+
+
+
+typedef struct mrcMultiFFTCentralSectionsCompareInfo {
+ long flagRedirect;
+
+ long flagIn2D;
+ char* In2D;
+ FILE* fptIn2D;
+
+ long flagIn3D;
+ char* In3D;
+ FILE* fptIn3D;
+
+ long flagvolPath;
+ char* volPath;
+
+ long flagPrior;
+ char* Prior;
+ FILE* fptPrior;
+
+ long flagPriPath;
+ char* PriPath;
+
+ long flagEulerMode;
+ char* EulerMode;
+
+ long flagRot1Start;
+ float Rot1Start;
+
+ long flagRot1End;
+ float Rot1End;
+
+ long flagRot1Delta;
+ float Rot1Delta;
+
+ long flagRot2Start;
+ float Rot2Start;
+
+ long flagRot2End;
+ float Rot2End;
+
+ long flagRot2Delta;
+ float Rot2Delta;
+
+ long flagRot3Start;
+ float Rot3Start;
+
+ long flagRot3End;
+ float Rot3End;
+
+ long flagRot3Delta;
+ float Rot3Delta;
+
+ long flagTransX;
+ float TransX;
+
+ long flagTransY;
+ float TransY;
+
+ long flagInterpMode;
+ long InterpMode;
+
+ long flagOut1;
+ char* Out1;
+ FILE* fptOut1;
+
+ long flagconfigFile;
+ char* configFile;
+ FILE* fptconfigFile;
+
+ long flagLcalcmode;
+ long Lcalcmode;
+
+ long flagLmode1;
+ float Lmode1;
+
+ long flagLmode2;
+ float Lmode2;
+
+ long flagmode;
+ long mode;
+
+} mrcMultiFFTCentralSectionsCompareInfo;
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void argCheck(mrcMultiFFTCentralSectionsCompareInfo* info, int argc, char* avgv[]);
+extern void khorosInit(int argc, char* avgv[]);
+extern void init0(mrcMultiFFTCentralSectionsCompareInfo* info);
+extern void init1(mrcMultiFFTCentralSectionsCompareInfo* info);
+extern void usage(char* usage);
+extern void additionalUsage(void);
+extern void htmlBeforeUsage(char* usage);
+extern void htmlAfterUsage(char* usage);
+#ifdef __cplusplus
+};
+#endif
+#endif /* MRCMULTIFFTCENTRALSECTIONSCOMPARE_H */
/*
-# mrc2DFTto3DFT : $Revision$
-# $Date$
+# mrc2DFTto3DFT : $Revision$
+# $Date$
# Created by $Author$
# Usage : mrc2DFTto3DFT
# Attention
# $Loccker$
-# $State$
+# $State$
#
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
-#include <math.h>
+#include <math.h>
#define GLOBAL_DECLARATION
#include "../inc/config.h"
*/
int
-main(int argc, char* argv[])
+main(int argc, char* argv[])
{
mrc2DFTto3DFTInfo info;
lmrcFFTCentralSectionInfo linfo;
char file2d[256], file3d[256], buf[256];
char filename[]="hogehoge";
double probability;
- mrcImage temp3d, in ,count;
+ mrcImage temp3d, in ,count, Sigma;
mrcImage* Inlist;
mrcImage Out;
+ //書き込み mrcImage Sigma;
int num,ref,i=0;
int size;
clock_t start,end;
linfo.TransX = 0.0;
linfo.TransY = 0.0;
linfo.InterpMode = info.InterpMode;
-
+
Out.Header = temp3d.Header;
count.Header = temp3d.Header;
mrcInit(&Out, NULL);
// DEBUGPRINT2("in Header: %d %d \n", Inlist[num].HeaderN.x, Inlist[num].HeaderN.y)
lmrcImageFFTCentralSectionPut(&Out, &count, &temp3d, &Inlist[i-1], probability, &linfo, &c, info.mode);
}
+
+
+
+
// lmrcImageFFTRhoFilter(&Out, &count, &linfo, info.mode);
mrcFileWrite(&Out, info.Out, "in main", 0);
+
+
+
+
+ /*書き込み
+ lmrcImageFFTSigmaCalc(&Sigma, &Out, &count, &temp3d, &Inlist[i-1], probability, &linfo, &c, info.mode);
+ */
+
+
+
+
+ ////// mrcFileWrite(&Sigma, info.Out, "in main", 0);
+
+
+
+
free(Inlist);
end = clock();
DEBUGPRINT1("time %f\n",(double)(end-start)/CLOCKS_PER_SEC);
--- /dev/null
+/*
+# mrc2DFTto3DFT : $Revision$
+# $Date$
+# Created by $Author$
+# Usage : mrc2DFTto3DFT
+# Attention
+# $Loccker$
+# $State$
+#
+*/
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include <string.h>
+#include <math.h>
+#define GLOBAL_DECLARATION
+#include "../inc/config.h"
+
+#define DEBUG
+#include "genUtil.h"
+#include "lmrcFFTCentralSection.h"
+//#include "Class.h"
+
+/*
+Example:
+typedef struct lmrc2DFTto3DFTInfo {
+ float a;
+ int b;
+} lmrc2DFTto3DFTInfo;
+
+typedef enum lmrc2DFTto3DFTMode {
+ a=0,
+ b=1
+} lmrc2DFTto3DFTMode;
+*/
+
+int
+main(int argc, char* argv[])
+{
+ mrc2DFTto3DFTInfo info;
+ lmrcFFTCentralSectionInfo linfo;
+ char file2d[256], file3d[256], buf[256];
+ char filename[]="hogehoge";
+ double probability;
+ mrcImage temp3d, in ,count, Sigma;
+ mrcImage* Inlist;
+ mrcImage Out;
+ int num,ref,i=0;
+ int size;
+ clock_t start,end;
+ FILE* fp;
+
+
+ start = clock();
+
+ init0(&info);
+ argCheck(&info, argc, argv);
+ init1(&info);
+ DEBUGPRINT("Program Start\n");
+
+ mrcFileRead(&temp3d, info.temp3d, "in main", 0);
+ // mrcFileRead(&Out, info.In3D, "in main", 0);
+
+ int c=0;
+ linfo.TransX = 0.0;
+ linfo.TransY = 0.0;
+ linfo.InterpMode = info.InterpMode;
+
+ Out.Header = temp3d.Header;
+ count.Header = temp3d.Header;
+ mrcInit(&Out, NULL);
+ mrcInit(&count, NULL);
+
+ while(fgets(buf, 256, info.fptIn) != NULL){
+ size ++;
+ }
+ rewind(info.fptIn);
+
+ Inlist = malloc(sizeof(mrcImage)*size);
+ if(Inlist ==NULL){
+ printf("malloc error\n");
+ }
+ num =0;
+ while(fscanf(info.fptIn,"%s %s %lf %lf %lf %s %d %lf",file2d, linfo.EulerMode, &linfo.Rot1, &linfo.Rot2, &linfo.Rot3, file3d, &num, &probability) != EOF){
+ if((ref=strcmp(filename,file2d))!= 0){
+ // DEBUGPRINT1("Num %d\n", i);
+ mrcFileRead(&Inlist[i], file2d, "in main", 0);
+ strcpy(filename,file2d);
+// DEBUGPRINT2("filename %s %s\n",filename, file2d);
+ i++;
+ }
+ num =i-1;
+ // DEBUGPRINT1("Num %d\n", i);
+ // DEBUGPRINT2("in Header: %d %d \n", Inlist[num].HeaderN.x, Inlist[num].HeaderN.y)
+ lmrcImageFFTCentralSectionPut(&Out, &count, &temp3d, &Inlist[i-1], probability, &linfo, &c, info.mode);
+ }
+
+
+
+
+
+
+
+
+
+
+ /*
+while(fscanf(info.fptIn,"%s %s %lf %lf %lf %s %d %lf",file2d, linfo.EulerMode, &linfo.Rot1, &linfo.Rot2, &linfo.Rot3, file3d, &num, &pr\
+obability) != EOF){
+ if((ref=strcmp(filename,file2d))!= 0){
+ mrcFileRead(&Sigma, file2d, "in main", 0);
+ strcpy(filename,file2d);
+i++;
+ }
+ num =i-1;
+ lmrcImageFFTSigmaCalc(&Sigma, &Out, &count, &temp3d, &Inlist[i-1], probability, &linfo, &c, info.mode);
+ }
+
+ */
+
+
+
+
+
+
+
+
+// lmrcImageFFTRhoFilter(&Out, &count, &linfo, info.mode);
+ mrcFileWrite(&Out, info.Out, "in main", 0);
+ ////// mrcFileWrite(&Sigma, info.Out, "in main", 0);
+ free(Inlist);
+ end = clock();
+ DEBUGPRINT1("time %f\n",(double)(end-start)/CLOCKS_PER_SEC);
+ exit(EXIT_SUCCESS);
+}
+
+void
+additionalUsage()
+{
+ fprintf(stderr, "----- Additional Usage -----\n");
+}