public class PrimaryModulationScatterCorrectionTool extends MultiProjectionFilter
THE principle and method of the primary modulation method were described in Lei Zhu and Hewei Gao's publications:
THE original algorithm of scatter estimation [primary-modulation implementation (PMI) algorithm] is written as
where, is the Fourier transform of the DOWNSAMPLED primary-modulated X-ray image with
the primary modulator in place,
is the low pass filter, and
is the transmission factor of the primary modulator.
IN stead of the above algorithm, however, this tool implements an improved algorithm using the virtual scatter modulation [scatter-modulation implementation (SMI) algorithm] as
THIS tool is rewritten from the matlab codes used in most of data processing on Hewei's computer ("Step_1_IndexPrep.m", "Step_2_ScatterEst.m", "Step_3_smooth_multiProj.m", and "Step_4_Subtraction.m"), such as
Constructor and Description |
---|
PrimaryModulationScatterCorrectionTool()
Initialization for the primary modulation method
|
Modifier and Type | Method and Description |
---|---|
ij.process.ImageProcessor |
applyToolToProcessorOld(ij.process.ImageProcessor imageProc) |
ImageFilteringTool |
clone()
Creates a clone of the filter with the same configuration as the original.
|
void |
configure()
Configures the object before execution
|
java.lang.String |
getBibtexCitation()
Returns the citation in bibTex format
|
double |
getGaincutfactor() |
double |
getLowPassFilterHeight() |
double |
getLowPassFilterWidth() |
int |
getMeanfilterLen() |
java.lang.String |
getMedlineCitation()
Returns the citation in Medline format
|
static ij.ImagePlus |
getModulationFunction(java.lang.String filename)
Loads the modulation function from disk if required.
|
java.lang.String |
getModulationFunctionFilename() |
double |
getScatterEstScale() |
double |
getSoftcutfactor() |
java.lang.String |
getToolName()
returns the name of the actual tool which was used.
|
boolean |
isbUniformAlpha() |
boolean |
isDeviceDependent()
Scatter correction is not device dependent.
|
void |
prepareForSerialization()
Serialization for the primary modulation method
|
void |
setbUniformAlpha(boolean bUniformAlpha) |
void |
setGaincutfactor(double gaincutfactor) |
void |
setLowPassFilterHeight(double lowPassFilterHeight) |
void |
setLowPassFilterWidth(double lPassFilterWidth) |
void |
setMeanfilterLen(int meanfilterLen) |
void |
setModulationFunctionFilename(java.lang.String modulationFunctionFilename) |
void |
setScatterEstScale(double scatterEstScale) |
void |
setSoftcutfactor(double softcutfactor) |
close, feedFilter, getContext, getName, process, run, setContext, setShowStatus, setSink, start
getFilterTools, isConfigured, setConfigured, toString
public PrimaryModulationScatterCorrectionTool()
public double getLowPassFilterWidth()
public void setLowPassFilterWidth(double lPassFilterWidth)
lPassFilterWidth
- the lowPassFilterWidth to setpublic double getLowPassFilterHeight()
public void setLowPassFilterHeight(double lowPassFilterHeight)
lowPassFilterHeight
- the lowPassFilterHeight to setpublic void prepareForSerialization()
prepareForSerialization
in interface SafeSerializable
prepareForSerialization
in class MultiProjectionFilter
public static ij.ImagePlus getModulationFunction(java.lang.String filename)
filename
- the filenamepublic ImageFilteringTool clone()
ImageFilteringTool
clone
in class ImageFilteringTool
public java.lang.String getToolName()
ImageFilteringTool
getToolName
in class ImageFilteringTool
public java.lang.String getBibtexCitation()
Citeable
public java.lang.String getMedlineCitation()
Citeable
public void configure() throws java.lang.Exception
GUIConfigurable
java.lang.Exception
- may happenpublic boolean isDeviceDependent()
isDeviceDependent
in class ImageFilteringTool
public ij.process.ImageProcessor applyToolToProcessorOld(ij.process.ImageProcessor imageProc)
public java.lang.String getModulationFunctionFilename()
public void setModulationFunctionFilename(java.lang.String modulationFunctionFilename)
modulationFunctionFilename
- the modulationFunctionFilename to setpublic int getMeanfilterLen()
public void setMeanfilterLen(int meanfilterLen)
meanfilterLen
- the meanfilterLen to setpublic double getGaincutfactor()
public void setGaincutfactor(double gaincutfactor)
gaincutfactor
- the gaincutfactor to setpublic double getScatterEstScale()
public void setScatterEstScale(double scatterEstScale)
scatterEstScale
- the scatterEstScale to setpublic boolean isbUniformAlpha()
public void setbUniformAlpha(boolean bUniformAlpha)
bUniformAlpha
- the bUniformAlpha to setpublic double getSoftcutfactor()
public void setSoftcutfactor(double softcutfactor)
softcutfactor
- the softcutfactor to set