lmrcImageCommonLine(API)
From EosPedia
								
												
				DataManip/mrcImage/src/lmrcImageCommonLine is API for Common Line Search. It is used by mrcImageCommonLineSearch, etc..
Contents
constant
struct
Common Line Mode
It is used as mode for lmrcImageCommonLineInfoOutput.
typedef enum lmrcImageCommonLineMode {
	lmrcImageCommonLineModeImageCenterIsGC = 1
} lmrcImageCommonLineMode;
Search Mode
Setting data as value of searchMode (lmrcImageCommonLineSearch 's member)
typedef enum lmrcImageCommonLineSearchMode {
	lmrcImageCommonLineSearchModeFourierSpace = 0,
	lmrcImageCommonLineSearchModeRealSpace = 1 
} lmrcImageCommonLineSearchMode;
Common Line Information
Setting data for lmrcImageCommonLineSearch.
typedef struct lmrcImageCommonLineInfo {
	/* Input */
	double dtheta;
	lmrcImageCommonLineSearchMode searchMode; 
	/* Output */
	double optimumThetaIn;
	double optimumThetaRef;
	double optimumCor; 
} lmrcImageCommonLineInfo;
API
Common Line Search
Output angle of Common Line from 2 image files.
extern void lmrcImageCommonLineSearch(mrcImage* out, mrcImage* in, mrcImage* ref, lmrcImageCommonLineInfo* linfo, int mode);
Input data
mode: In the case of setting lmrcImageCommonLineModeImageCenterIsGC, Move so that origin is center of  gravity before correlation.
Select correlation method by linfo->searchMode.
| searchMode | Value | Correlation Method | 
|---|---|---|
| lmrcImageCommonLineSearchModeFourierSpace | 0 | Fourier Shell Correlation | 
| lmrcImageCommonLineSearchModeRealSpace | 1 | Sinogram Correlation | 
Output data
Output Correlation Map to out.
In the case of Fourier Shell Correlation(searchMode=0), it stores data at when correlation value is max to linfo 's member.
| linfo 's member | Output | 
|---|---|
| optimumThetaIn | in 's Projection Angle | 
| optimumThetaRef | ref 's Projection Angle | 
| optimumCor | Correlation value | 
Output API Information
Output setting data
extern void lmrcImageCommonLineInfoOutput(FILE* fpt, lmrcImageCommonLineInfo* linfo, int mode);
Output Help message
extern void lmrcImageCommonLineInfoUsage(FILE* fpt);
