Class UNCImage
- All Implemented Interfaces:
ReadableImage
,WritableImage
,InfoStorer
,AutoCloseable
,Cloneable
UNCImage
object may be either purely held in memory, or may have its pixel data
kept on disk.
Note that only big-endian byte ordering is implemented and supported.-
Nested Class Summary
Nested classes/interfaces inherited from interface com.xinapse.image.ReadableImage
ReadableImage.Position
-
Field Summary
Modifier and TypeFieldDescriptionstatic final boolean
The default setting for the whether UNC images can be overwritten.static final int
The maximum dimensionality of an image.static final int
The number of entries in an image histogramFields inherited from class com.xinapse.multisliceimage.MultiSliceImage
AUDIT_TRAIL_ACTION_TEXT, BIRTH_DATE_NAME, BODY_PART_NAME, COLOUR_MAPPING_NAME, DW_B_MATRIX_NAME, DW_B_VALUE_NAME, DW_GRADIENT_VECTOR_NAME, ECHO_TIME_NAME, ECHO_TRAIN_LENGTH_NAME, FLIP_ANGLE_NAME, FRAME_OF_REFERENCE_UID_NAME, IMAGE_ORIENTATION_PATIENT_NAME, IMAGE_POSITION_PATIENT_NAME, INTENSITY_RESCALE_INTERCEPT_NAME, INTENSITY_RESCALE_SLOPE_NAME, INTENSITY_RESCALE_UNITS_NAME, INVERSION_TIME_NAME, LATERALITY_NAME, MODALITY_NAME, mode, PATIENT_ID_NAME, PATIENT_NAME_NAME, PATIENT_POSITION_NAME, PATIENT_SEX_NAME, pixArray, PIXEL_SPACING_NAME, PIXEL_X_SIZE_NAME, PIXEL_Y_SIZE_NAME, PIXEL_Z_SIZE_NAME, PULSE_SEQUENCE_NAME, randomAccessFile, REPETITION_TIME_NAME, SAT_PULSE_FREQ_OFFSET_PPM_NAME, SCAN_DATE_NAME, SCANNING_SEQUENCE_NAME, SEQUENCE_VARIANT_NAME, SERIES_DESCRIPTION_NAME, SERIES_INSTANCE_UID_NAME, SERIES_NUMBER_NAME, SLICE_THICKNESS_NAME, STORAGE_CLASS_UID_NAME, STUDY_ID_NAME, STUDY_INSTANCE_UID_NAME, TIME_BETWEEN_FRAMES_NAME, TRIGGER_DELAY_NAME
-
Constructor Summary
ConstructorDescriptionUNCImage()
Creates an uninitialised instance of a UNCImage.UNCImage
(UNCPixFormat pixform, int dimc, int[] dimv) Creates an in-memoryUNCImage
with the given type of pixel and dimensions.UNCImage
(DataInputStream s, boolean skipPixelData) Creates an in-memoryUNCImage
, loading all information from the data input stream.UNCImage
(File f, UNCPixFormat pixform, int dimc, int[] dimv) Creates a disk-basedUNCImage
with the given type of pixel and dimensions.UNCImage
(String fileName, UNCPixFormat pixform, int dimc, int[] dimv) Creates a disk-basedUNCImage
with the given type of pixel and dimensions. -
Method Summary
Modifier and TypeMethodDescriptionvoid
anonymise
(String patientName, String patientID, Date birthDate, boolean patSex, String patAddr, String patInsurancePlanID, String accessionNumber, boolean patOther, String physicianName, String physicianAddr, String institutionName, String institutionAddr, String deptName, String stationName, String telNumber, boolean removePrivateElements) Anonymise this WritableImage.void
appendAuditInfo
(String name, String value) Appends audit trail information to this image.void
appendInfoList
(InfoList list) Appends anInfoList
to the existing general file info of this image.void
appendInfoList
(InfoList list, int dim, int n) Appends anInfoList
to that existing for a specific dimension of this image.void
close()
Closes aUNCImage
and frees up resources.void
Copies all the info fields to another image.void
Gives this image the option to free up resources by removing access to image data.com.xinapse.dicom.BodyPart
By default, body part recording is not supported, so this method always returnsnull
.Returns the byte order for this image.int
Returns the number of bytes per pixel for this image.static String
Returns the common name for this type of image.getCopy()
Returns a copy of thisWritableImage
.Returns a String description of this image.getDescription
(int slice) Returns a String description of this one particular slice of this image.int
getDimc()
Returns the dimensionality of this image.int[]
getDims()
Returns the dimensions (numbers of samples in each image dimension) of this image.int[]
getDimv()
Returns the dimensions of this image.Returns the scan echo train length for this image.int
Returns the byte offset into the disk-based file format where pixel data begins.Returns the excitation pulse flip angle for this image.float[]
getFrameDWBMatrix
(int frame) Returns the diffusion-weighting b-matrix for one frame of this image.getFrameDWbValue
(int frame) Returns the diffusion-weighting b-value for one frame of this 4-D image.org.jogamp.vecmath.Vector3f
getFrameDWGradientVector
(int frame) Returns the diffusion-weighting gradient-vector for one frame of this image 4-D image.getFrameInfo
(String name, int frame) Returns aString
representing the value of this information item in a particular frame of this image.getFrameInfoList
(int frame) Returns anInfoList
object applying to a particular frame of this image.getFrameTriggerDelayMS
(int frame) Returns the trigger delay, in milliseconds, for one frame of this image.Returns a String description of this image in HTML format.getHTMLDescription
(int slice) Returns a String description of a slice of this image in HTML format.org.jogamp.vecmath.Vector3f[]
Returns the direction cosines of the row, column and slice directions (for increasing row, column and slice) of the image, in patient (L,P,S) coordinates.org.jogamp.vecmath.Vector3f[]
getImageOrientationPatient
(int slice) Returns the direction cosines of the row, column and slice directions (for increasing row, column and slice) of the image, in patient coordinates.org.jogamp.vecmath.Point3f
Returns the coordinates of the center of the first pixel of the image, in mm, in patient coordinates.org.jogamp.vecmath.Point3f
getImagePositionPatient
(int slice) Returns the coordinates of the center of the first pixel of the specified slice of this image, in mm, in patient coordinates.Returns the normal human readable name for this type of image.Returns a string representing the value of this information item in the general image information.Returns aString
representing the value of this information item in a particular dimension of this image.Returns anInfoList
object which is the general info for this image.getInfoList
(int dim, int n) Returns anInfoList
object applying to a particular dimension/element for this image.float[]
Returns the valuesm
andb
in the relationship between pixel intensity (I) values and the output units specified ingetRescaleUnits()
in the expression:
Output units = m*I + b
.com.xinapse.dicom.Laterality
By default, laterality recording is not supported, so this method returnsLaterality.BOTH
.getMax()
Returns the maximum pixel intensity in the image.getMin()
Returns the minimum pixel intensity in the image.Returns aColourMapping
if this image has an associated colour mapping.Returns a String showing the 'native' header for this image.int
getNCols()
Returns the number of image columns in this image.int
getNDim()
Returns theMultiSliceImage
dimensionality of this image.int
Returns the number of frames in a multi-frame image.int
getNRows()
Returns the number of image rows in this image.int
Returns the number of physical slice locations in this image.Returns the patient date of birth for this image.Returns the patient ID for this image.Returns the patient name for this image.Returns the position in which the patient is lying in the scanning equipment.com.xinapse.dicom.Sex
Returns the patient sex for this image.float
Returns the pixel size in the x (horizontal) direction for this image.float
Returns the pixel size in the y (vertical) direction for this image.float
Returns the separation between the centres of image planes for this image.Returns the pixel format (pixformat) of this image.static boolean
Returns whether the user prefers to overwrite UNC images.static PreviewIcon
getPreviewIcon
(File f, boolean withImagePreview) Returns thePreviewIcon
for a UNC image, ornull
if the suppliedFile
does not represent a UNC image.Returns the name of the pulse sequence with which this image was collected.com.xinapse.dicom.RescaleUnits
Returns the output units of Intensity Rescale Slope and Intensity Rescale Intercept, retrieved bygetIntensityRescale()
.Returns the scan saturation frequency offset for this image if it has a single saturation frequency offset in parts-per-million.getSaturationFreqOffsetPPM
(int index) Returns the scan saturation frequency offset for one dimension index of this image in parts-per-million.Returns the scan Date for this image.Returns the DICOM Scanning Sequence with which this image was collected.Returns the scan echo time for this image if it has a single echo-time.getScanTE
(int index) Returns the scan echo time for one dimension index of this image.Returns the scan inversion time for this image.Returns the scan repetition time for this image.Returns the DICOM Scanning Sequence Variant with which this image was collected.Returns a short description of the series (scan), such as is provided by the DICOM series description.Returns the series number for this ReadableImage.float[]
getSliceDWBMatrix
(int slice) Returns the diffusion-weighting b-matrix for one slice of this image.getSliceDWbValue
(int slice) Returns the diffusion-weighting b-value for one slice of this image.org.jogamp.vecmath.Vector3f
getSliceDWGradientVector
(int slice) Returns the diffusion-weighting gradient-vector for one slice of this image.getSliceInfo
(String name, int slice) Returns aString
representing the value of this information item in a particular slice of this image.getSliceInfoList
(int slice) Returns anInfoList
object applying to a particular slice of this image.Returns the slice thickness (in mm).getSliceTriggerDelayMS
(int slice) Returns the trigger delay, in milliseconds, for one slice of this image.Returns aPixelDataType
representing the data type of this image, as the pixel values are stored on disk.Returns the study ID for this ReadableImage.float
Returns the time between frames in a 4- or higher dimensional image.getTitle()
Returns the title of this image.int
Returns the total number of slices in this image.boolean
isOpen()
Tests whether this image is still open.static boolean
isUNCImage
(File f) Returnstrue
if theFile
is a UNC Image File.static boolean
isUNCImage
(String fileName) Returnstrue
if the fileName is the name of a UNC Image file.static boolean
isUNCImage
(URL url) static UNCImage
newInstance
(File f, String mode) Opens an existing disk-based UNC image.static UNCImage
Creates an in-memoryUNCImage
, loading information from an input stream.static UNCImage
newInstance
(InputStream s, boolean skipPixelData) Creates an in-memoryUNCImage
, loading information from the input stream.static UNCImage
newInstance
(String fileName, String mode) Opens an existing disk-based UNC image.static UNCImage
newInstance
(URL url) static UNCImage
newInstance
(URL url, boolean skipPixelData) void
putFrameInfo
(InfoList infoList, int frame) Adds all the items in an InfoList to the frame-specific information.void
putFrameInfo
(String name, String value, int frame) Adds an item to the frame-specific information.void
Adds an item to the general file info.void
Adds an item to the dimension-specific information.void
Adds an item to the general file info.void
Adds an item to the dimension-specific information.void
Adds an item to the general file info.void
Adds an item to the dimension-specific information.void
Puts a single pixel value to the image.void
Put pixel values from a specified array to this image.void
Puts the pixel values to one slice of an n-dimensional image, where n > 1.void
putSliceInfo
(InfoList infoList, int slice) Adds all the items in an InfoList to the slice-specific information.void
putSliceInfo
(String name, String value, int slice) Adds an item to the slice-specific information.void
removeInfo
(String name) Removes an item from the general file information.void
removeInfo
(String name, int dim, int n) Removes an item from the dimension-specific information.static void
savePreferredOverwrite
(boolean b) Saves whether the user prefers to overwrite UNC images.void
setBodyPart
(com.xinapse.dicom.BodyPart bodyPart) By default, body part recording is not supported, so this method does nothing.void
Sets the echo train length for this image.void
setFlipAngle
(Float flipAngle) Sets the excitation pulse flip angle for this image.void
setFrameDWBMatrix
(float[] bMatrix, int frame) Sets the diffusion-weighting B-matrix for one "frame" of this 4-D image.void
setFrameDWbValue
(float bValue, int frame) Sets the diffusion-weighting b-value for one "frame" of this 4-D image.void
setFrameDWGradientVector
(org.jogamp.vecmath.Vector3f gradVec, int frame) Sets the diffusion-weighting gradient vector for one "frame" of this 4-D image.void
setFrameInfoList
(InfoList list, int frame) Sets a newInfoList
a specific frame of this image.void
setFrameTriggerDelayMS
(float delay, int frame) Sets the trigger delay (in milliseconds) for one "frame" of this 4-D image.void
setImageOrientationPatient
(org.jogamp.vecmath.Vector3f[] orientation, int slice) Sets the direction cosines of the row, column and slice directions (for increasing row, column and slice) of the image, in patient (LPS) coordinates.void
setImageOrientationPositionPatient
(org.jogamp.vecmath.Vector3f[] orientation, org.jogamp.vecmath.Point3f position, boolean force) Sets the direction cosines of the row, column and slice directions of the image, the coordinates of the center of the first pixel of the image, in patient (LPS) coordinates.void
setImagePositionPatient
(org.jogamp.vecmath.Point3f position, int slice) Sets the coordinates of the center of the first pixel of the image, in mm, in patient (LPS) coordinates, for one slice of this image.void
setInfoList
(InfoList list) Sets a newInfoList
to the general file info of this image.void
setInfoList
(InfoList list, int dim, int n) Sets a newInfoList
a specific dimension of this image.void
setIntensityRescale
(float rescaleSlope, float rescaleIntercept) Sets the valuesm
andb
in the relationship between pixel intensity (I) values and the output units specified inWritableImage.setRescaleUnits(com.xinapse.dicom.RescaleUnits)
in the expression:
Output units = m*I + b
.void
setLaterality
(com.xinapse.dicom.Laterality laterality) By default, laterality recording is not supported, so this method does nothing.void
setMinMax
(int min, int max) Sets the min and max pixel intensity fields for thisUNCImage
.void
setNativeColourMapping
(ColourMapping colourMapping) Sets theColourMapping
for this image.void
setPatientDoB
(Date patientDoB) Sets the patient's date of birth for this image.void
setPatientID
(String patientID) Sets the patient ID for this image.void
setPatientName
(String patientName) Attempts to set the patient name for this image.void
setPatientPosition
(PatientPosition position) Sets the position in which the patient is lying in the scanning equipment for thisWritableImage
.void
setPatientSex
(com.xinapse.dicom.Sex sex) Sets the patient sex for this image.void
setPixelSpacing
(Float[] spacing) Sets the distance (in mm) between pixel centres in the row, column and slice directions of the image, and the time between movie frames (for 4-D images) in seconds.void
setPixelXSize
(float width) Sets the pixel size in the x (horizontal) direction for this image.void
setPixelYSize
(float height) Sets the pixel size in the y (vertical) direction for this image.void
setPixelZSize
(float thickness) Sets the pixel size in the z (slice) direction for this image.void
setPulseSequence
(String seqName) Sets the pulse sequence name for this image.void
setRescaleUnits
(com.xinapse.dicom.RescaleUnits units) Sets the rescale units.void
setSaturationFreqOffsetPPM
(Float freqOffset) Sets the saturation frequency offset in PPM for this image.void
setSaturationFreqOffsetPPM
(Float freqOffset, int index) Sets the saturation frequency offset for one dimension index of this image.void
setScanDate
(Date scanDate) Sets the scan date/time for this image.void
Sets the DICOM scanning sequence for this image.void
Sets the scan echo time for this image.void
Sets the scan echo time for one dimension index of this image.void
Sets the scan inversion time for this image.void
Sets the scan repetition time for this image.void
Sets the DICOM scanning sequence variant for this image.void
setSeriesDescription
(String seriesDescription) Sets a short description of the series (scan).void
setSeriesNumber
(Integer seriesNumber) Sets the series number for this image.void
setSliceDWBMatrix
(float[] bMatrix, int slice) Sets the diffusion-weighting B-matrix for one slice of this image.void
setSliceDWbValue
(float bValue, int index) Sets the diffusion-weighting b-value for one slice of this image.void
setSliceDWGradientVector
(org.jogamp.vecmath.Vector3f gradVec, int index) Sets the diffusion-weighting gradient vector for one slice of this image.void
setSliceInfoList
(InfoList list, int slice) Sets a newInfoList
a specific slice of this image.void
setSliceThickness
(Float thickness) Sets the slice thickness (in mm).void
setSliceTriggerDelayMS
(float delay, int index) Sets the trigger delay (in milliseconds) for one slice of this image.void
setStudyID
(String studyID) Sets the study ID for this image.void
setTimeBetweenFrames
(float deltaT) Sets the time between frames in a 4- or higher dimensional image.void
Sets the title of this image.boolean
Returnstrue
because UNC images support intensity rescaling.toHTML()
Returns an HTML string describing this image.toString()
Returns a string describing this image.void
Writes thisUNCImage
to aDataOutputStream
.Writes this WritableImage to a file (or possibly a pair of header/image files).Methods inherited from class com.xinapse.multisliceimage.MultiSliceImage
clone, getDateFormat, getFrameDim, getFrameOfReferenceUID, getModality, getMostLikePlane, getPix, getPix, getPix, getPix, getPix, getPresentationPixelDataType, getROIs, getScanDateFormat, getSlice, getSlice, getSliceDim, getStoredPix, getSuggestedFileName, isModified, main, parseMultiValuedString, putPix, putPix, setFrameOfReferenceUID, setIntensityRescale, setMinMax, setModality, setModified, setSeriesInstanceUID, setStudyInstanceUID, setSuggestedFileName
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.xinapse.image.ReadableImage
getAffineTransform, getAffineTransform, getNSliceLocations
Methods inherited from interface com.xinapse.image.WritableImage
appendToTitle
-
Field Details
-
DEFAULT_OVERWRITE
public static final boolean DEFAULT_OVERWRITEThe default setting for the whether UNC images can be overwritten.- See Also:
-
N_DIMV
public static final int N_DIMVThe maximum dimensionality of an image.- See Also:
-
N_HISTOGRAM
public static final int N_HISTOGRAMThe number of entries in an image histogram- See Also:
-
-
Constructor Details
-
UNCImage
public UNCImage()Creates an uninitialised instance of a UNCImage. Needed so that newInstance() method can be called on the class. -
UNCImage
public UNCImage(String fileName, UNCPixFormat pixform, int dimc, int[] dimv) throws InvalidImageException, IOException Creates a disk-basedUNCImage
with the given type of pixel and dimensions. dimc should be greater that 1 and less than or equal tonDIMV
.- Parameters:
fileName
- the name of the file to be created.pixform
- the type of image to be created (e.g.UNCPixFormat.GREY
).dimc
- the dimensionality of the image.dimv
- an array of length at least dimc containing the number of picture elements in each dimension. For example, in a 3-dimensional image,dimv[0]
is the number of slices,dimv[1]
the number of rows, anddimv[2]
the number of columns.- Throws:
InvalidImageException
- if the image cannot be created.IOException
- if an I/O error occurs.
-
UNCImage
public UNCImage(File f, UNCPixFormat pixform, int dimc, int[] dimv) throws InvalidImageException, IOException Creates a disk-basedUNCImage
with the given type of pixel and dimensions. dimc should be greater that 1 and less than or equal to nDIMV.- Parameters:
f
- isFile
Object representing the path of the file to be created.pixform
- the type of image to be created (e.g.UNCPixFormat.GREY
).dimc
- the dimensionality of the image.dimv
- an array of length at least dimc containing the number of picture elements in each dimension. For example, in a 3-dimensional image,dimv[0]
is the number of slices,dimv[1]
the number of rows, anddimv[2]
the number of columns.- Throws:
InvalidImageException
- if the image cannot be created.IOException
- if an I/O error occurs.
-
UNCImage
Creates an in-memoryUNCImage
with the given type of pixel and dimensions. dimc should be greater that 1 and less than or equal to nDIMV.- Parameters:
pixform
- the type of image to be created (e.g.UNCPixFormat.GREY
).dimc
- the dimensionality of the image.dimv
- an array of length at least dimc containing the number of picture elements in each dimension. For example, in a 3-dimensional image,dimv[0]
is the number of slices,dimv[1]
the number of rows, anddimv[2]
the number of columns.- Throws:
InvalidImageException
- if the image cannot be created.
-
UNCImage
Creates an in-memoryUNCImage
, loading all information from the data input stream. Optionally skips over loading of the pixel data.- Parameters:
s
- theDataInputStream
.skipPixelData
- iftrue
then pixel data is not loaded and cannot later be accessed.- Throws:
InvalidImageException
- if the image cannot be loaded.
-
-
Method Details
-
newInstance
- Parameters:
url
- theURL
that will give a UNC image data stream.- Returns:
- a new UNCImage loaded from a URL.
- Throws:
InvalidImageException
- if the image cannot be loaded.UNCException
- if the image cannot be loaded for UNC-specific reasons.IOException
- if an I/O error occurs while loading the image.
-
newInstance
public static UNCImage newInstance(URL url, boolean skipPixelData) throws InvalidImageException, UNCException, IOException Creates an in-memoryUNCImage
, loading information from aURL
. Optionally skips loading of the pixel data into memory. IfskipPixelData
is true, then the pixel data will not be accessible.- Parameters:
url
- theURL
that will give a UNC image data stream.skipPixelData
- iftrue
then pixel data is not loaded and cannot later be accessed.- Returns:
- a new UNCImage loaded from a URL.
- Throws:
InvalidImageException
- if the image cannot be loaded.UNCException
- if the image cannot be loaded for UNC-specific reasons.IOException
- if an I/O error occurs while loading the image.
-
newInstance
public static UNCImage newInstance(String fileName, String mode) throws InvalidImageException, IOException, FileNotFoundException Opens an existing disk-based UNC image.- Parameters:
fileName
- the name of the image file.mode
- the open mode. Can be either"r"
(read-only) or"rw"
(read-write).- Returns:
- a new UNCImage, loaded from a disk file.
- Throws:
InvalidImageException
- if the mode is invalid or the image cannot be read.FileNotFoundException
- if the image file doesn't exist.IOException
- if an I/O error occurs.
-
newInstance
public static UNCImage newInstance(File f, String mode) throws InvalidImageException, IOException, FileNotFoundException Opens an existing disk-based UNC image.- Parameters:
f
- aFile
object representing the path to this image file.mode
- the open mode. Can be either"r"
(read-only) or"rw"
(read-write).- Returns:
- a new UNCImage, loaded from a disk file.
- Throws:
InvalidImageException
- if the mode is invalid or the image cannot be read.FileNotFoundException
- if the image file doesn't exist.IOException
- if an I/O error occurs.
-
newInstance
Creates an in-memoryUNCImage
, loading information from an input stream.- Parameters:
s
- theInputStream
.- Returns:
- a new UNCImage, loaded from an input stream.
- Throws:
InvalidImageException
- if the image cannot be loaded.
-
newInstance
public static UNCImage newInstance(InputStream s, boolean skipPixelData) throws InvalidImageException Creates an in-memoryUNCImage
, loading information from the input stream. Optionally skips over loading of the pixel data.- Parameters:
s
- theInputStream
.skipPixelData
- iftrue
then pixel data is not loaded and cannot later be accessed.- Returns:
- a new UNCImage, loaded from an input stream.
- Throws:
InvalidImageException
- if the image cannot be loaded.
-
getByteOrder
Description copied from class:MultiSliceImage
Returns the byte order for this image.- Specified by:
getByteOrder
in classMultiSliceImage
- Returns:
- the byte oder for this image, or
null
if the byte order is not defined yet (in-memory images only).
-
isUNCImage
-
getPreviewIcon
Returns thePreviewIcon
for a UNC image, ornull
if the suppliedFile
does not represent a UNC image.- Parameters:
f
- theFile
to be tested.withImagePreview
- whether a image preview is to be generated. Generating an image preview will take longer than not generating one.- Returns:
- a
PreviewIcon
if the File produces aUNCImage
;null
otherwise.
-
isUNCImage
Returnstrue
if the fileName is the name of a UNC Image file. Returnsfalse
otherwise.- Parameters:
fileName
- the name of a file to be tested.- Returns:
true
if aUNCImage
file with the specified name exists on disk;false
otherwise.
-
isUNCImage
-
disposeImageData
public void disposeImageData()Description copied from interface:ReadableImage
Gives this image the option to free up resources by removing access to image data. After this method is called, image data may no longer be accessible, and method calls to access it may result in an Exception being thrown.- Specified by:
disposeImageData
in interfaceReadableImage
-
close
Closes aUNCImage
and frees up resources. For in-memory UNCImages, this merely explicity frees resources so that the garbage collector can work more efficiently. However, for disk-based images it is essential to apply the close() method. Image data is written to disk during the put() methods, but other information - the title and the info fields are only written to disk by the close() method. If the close() method is not applied to a disk-based UNCImage, then any changes to the title and info fields will be lost. Any further operations to a closedUNCImage
are not possible, and may cause an exception to be thrown.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceReadableImage
- Throws:
IOException
- if the file cannot be written or closed.
-
isOpen
public boolean isOpen()Description copied from interface:ReadableImage
Tests whether this image is still open.- Specified by:
isOpen
in interfaceReadableImage
- Returns:
true
if the image is still open for reading and (if opened read/write) writing;false
otherwise.
-
write
Description copied from interface:WritableImage
Writes this WritableImage to a file (or possibly a pair of header/image files).- Specified by:
write
in interfaceWritableImage
- Parameters:
fileName
- with which the image is to be written.- Returns:
- the actual file name to which the image was written.
- Throws:
InvalidImageException
- if the image cannot be written.
-
getPreferredOverwrite
public static boolean getPreferredOverwrite()Returns whether the user prefers to overwrite UNC images.- Returns:
true
if the user prefers to overwrite existsing UNC images;false
if UNC will not be overwritten.
-
savePreferredOverwrite
public static void savePreferredOverwrite(boolean b) Saves whether the user prefers to overwrite UNC images.- Parameters:
b
-true
if the user prefers to overwrite existsing UNC images;false
if UNC are not to be overwritten.
-
write
Writes thisUNCImage
to aDataOutputStream
.- Parameters:
s
- theDataOutputStream
.- Throws:
InvalidImageException
- if the image cannot be written.
-
getBytesPerPixel
public int getBytesPerPixel()Returns the number of bytes per pixel for this image.- Returns:
- the number of bytes per pixel.
-
getNativeHeader
Description copied from interface:ReadableImage
Returns a String showing the 'native' header for this image.- Specified by:
getNativeHeader
in interfaceReadableImage
- Returns:
- a String describing the 'native' header for this image.
-
toString
Returns a string describing this image. -
toHTML
Returns an HTML string describing this image.- Returns:
- a
String
that describes the image in HTML format.
-
setMinMax
Sets the min and max pixel intensity fields for thisUNCImage
. Also sets the valid flag to true.- Specified by:
setMinMax
in interfaceWritableImage
- Specified by:
setMinMax
in classMultiSliceImage
- Parameters:
min
- the minimum pixel value in the image.max
- the maximum pixel value in the image.- Throws:
InvalidImageException
- if the image is read-only or if the supplied values are unsuitable for this image.
-
getDimc
public int getDimc()Returns the dimensionality of this image.- Returns:
- dimc, the dimensionality.
-
getNDim
public int getNDim()Returns theMultiSliceImage
dimensionality of this image.- Specified by:
getNDim
in interfaceReadableImage
- Returns:
- the dimensionality.
-
getDimv
Returns the dimensions of this image. An integer array of lengthN_DIMV
is returned with elements 0 to dimc-1 containing useful information about the numbers of pixels in each dimension of the image. The lowest array element contain the most slowly-varying image component. For example in a 3-dimensional image,dimv[0]
is the number of slices,dimv[1]
the number of rows, anddimv[2]
the number of columns.- Returns:
dimc
an array of image dimensions.- Throws:
IllegalStateException
- if there is something strange about the dimensionality of this image.
-
getDims
Description copied from interface:ReadableImage
Returns the dimensions (numbers of samples in each image dimension) of this image.- Specified by:
getDims
in interfaceReadableImage
- Returns:
- an array with length equal to the image dimensionality, containing the
numbers of pixels (samples) in each dimension of the image.
By convention, element (nDim-1) contains the number of columns,
element (nDim-2) the number of rows, etc. For example, in a 4-dimensional image,
dims[0]
is the number of frames,dims[1]
the number of slices,dims[2]
the number of rows anddims[3]
the number of columns. - Throws:
IllegalStateException
-
getPixformat
Returns the pixel format (pixformat) of this image.- Returns:
- a
UNCPixFormat
representing a particular pixel format.
-
getStoredPixelDataType
Description copied from interface:ReadableImage
Returns aPixelDataType
representing the data type of this image, as the pixel values are stored on disk.- Specified by:
getStoredPixelDataType
in interfaceReadableImage
- Returns:
- the
PixelDataType
representing the data type of this image as stored on disk.
-
getFileDataOffset
public int getFileDataOffset()Returns the byte offset into the disk-based file format where pixel data begins.- Specified by:
getFileDataOffset
in classMultiSliceImage
- Returns:
- the byte offset to the start of pixel data for images that are written to disk.
-
getTitle
Returns the title of this image.- Specified by:
getTitle
in interfaceReadableImage
- Returns:
- the title String.
-
setTitle
Sets the title of this image. If the new titleString
is longer than is allowed by the UNC format, then it is truncated before being applied. If the image is read-only, then this method does nothing.
N.B. For disk-based images, the changes in the title will not be reflected on disk unless theclose()
method is called.- Specified by:
setTitle
in interfaceWritableImage
- Parameters:
newTitle
- the new title to be assigned to this image.
-
putPix
Description copied from class:MultiSliceImage
Put pixel values from a specified array to this image. array is an array of the correct type of element for this image from which pixel values will be copied; it must be cast to anObject
and must have the right number of elements to copy to the pixel values requested. ThelowIdx
andhighIdx
int arrays should have at least nDim elements, and the elements specify the pixel number range for each dimension. For example, if an image hasnDim
= 3, anddims
[] = {5, 256, 256}, then pixels for the middle slices 4 will be returned by setting lowIdx to {1, 0, 0} and highIdx to {4, 255, 255}.- Specified by:
putPix
in interfaceWritableImage
- Overrides:
putPix
in classMultiSliceImage
- Parameters:
array
- a 1-dimensional array of pixel values of the correct java primitive data type to put to the image.lowIdx
- an array ofint
specifying the low index of pixel values to put.highIdx
- an array ofint
specifying the high index of pixel values to put.- Throws:
IllegalStateException
- if an error occurs while accessing the pixel values.
-
putPix
Description copied from class:MultiSliceImage
Puts a single pixel value to the image.- Specified by:
putPix
in interfaceWritableImage
- Overrides:
putPix
in classMultiSliceImage
- Parameters:
pix
- the pixel value to put, as a suitable Object.pixIdx
- an int[] of length at least equal tonDim
for this image where each element corresponds to an index to the pixel in each dimension. The first element ofpixIdx
refers to the slowest-varying dimension, and the last relevant element refers to the fastest-varying dimension. For example, for a 3-D image,pixIdx[0]
refers to the slice dimension, andpixIdx[2]
refers to the column dimension.- Throws:
IOException
- if an I/O error occurs while accessing the pixel values.
-
putSlice
Description copied from class:MultiSliceImage
Puts the pixel values to one slice of an n-dimensional image, where n > 1.N.B.Whenever the radiological orientation of the image can be determined, this method sets pixel values such that when the slice is viewed on-screen, the first pixel in the array belongs at the top left of the screen, and the last pixel in the array belongs at the bottom right of the screen. This is regardless of the sub-class of image (for example, the flipping of Analyze images is taken care of by this method).
- Specified by:
putSlice
in interfaceWritableImage
- Overrides:
putSlice
in classMultiSliceImage
- Parameters:
array
- a 1-dimensional array of the correct primitive java data type for this image, with dimensions [nRows * nCols] containing the pixel values to put.slice
- the slice number. Must be 0 for a 2-dimensional image or from 0 to dims[0]-1 for a 3-dimensional image.- Throws:
IllegalStateException
- if an I/O error occurs while putting the pixel values, or if the array is not of the correct primitive data type for this image.
-
getInfo
Description copied from interface:InfoStorer
Returns a string representing the value of this information item in the general image information.For example, if there is a item with a name
"pixel_x_size"
and a value"0.91162"
in the general info, and name"pixel_x_size"
is supplied, then this method will return"0.91162"
.- Specified by:
getInfo
in interfaceInfoStorer
- Parameters:
name
- the name of this information field.- Returns:
- a
String
representation of the value of this information field. - Throws:
InfoNotFoundException
- if the name is not found in the general info.
-
putInfo
Description copied from interface:InfoStorer
Adds an item to the general file info.
N.B. For disk-based images, the changes in the info will not be reflected on disk unless theReadableImage.close()
method is called.- Specified by:
putInfo
in interfaceInfoStorer
- Parameters:
name
- the name of the information field to put.value
- an integer value to be associated with this name in the general file information.- Throws:
IOException
- if the information cannot be added because of an I/O error.
-
putInfo
Description copied from interface:InfoStorer
Adds an item to the general file info. If an info item with the same name exists, then then value will be overwritten.
N.B. For disk-based images, the changes in the info will not be reflected on disk unless theReadableImage.close()
method is called.- Specified by:
putInfo
in interfaceInfoStorer
- Parameters:
name
- the name of the information to put.value
- a floating point value to be associated with this name in the general file information.- Throws:
IOException
- if the information cannot be addded because of an I/O error.
-
putInfo
Description copied from interface:InfoStorer
Adds an item to the general file info. If an info item with the same name exists, then then value will be overwritten.
N.B. For disk-based images, the changes in the info will not be reflected on disk unless theReadableImage.close()
method is called.- Specified by:
putInfo
in interfaceInfoStorer
- Parameters:
name
- the name of the information to put.value
- aString
to be associated with this name in the general file information.- Throws:
IOException
- if the information cannot be addded because of an I/O error.
-
getInfo
Description copied from interface:InfoStorer
Returns aString
representing the value of this information item in a particular dimension of this image. For example, if there is a item"pixel_x_size=0.91162"
in the file info for this dimension, and a name"pixel_x_size"
is supplied, then this method will return"0.91162"
.- Specified by:
getInfo
in interfaceInfoStorer
- Parameters:
name
- the name of this information item.dim
- the dimension of this image to look for the information. For example in a 3-dimensional image you would look in dimension 0 for slice-specific info.n
- the element to look in. For example in a 3-dimensional image you would look in slicen
to info that applied only to slicen
.- Returns:
- a
String
representation of the value of this information. - Throws:
InfoNotFoundException
- if the name is not found in this dimension/element info.
-
getSliceInfo
Description copied from interface:InfoStorer
Returns aString
representing the value of this information item in a particular slice of this image.The slice number is referenced from 0 to (number of slices - 1).
- Specified by:
getSliceInfo
in interfaceInfoStorer
- Parameters:
name
- the name of this information item.slice
- the slice number.- Returns:
- a
String
representation of the value of this information. - Throws:
InfoNotFoundException
- if the name is not found for the specified slice.
-
getFrameInfo
Description copied from interface:InfoStorer
Returns aString
representing the value of this information item in a particular frame of this image.The frame number is referenced from 0 to (number of frames - 1).
- Specified by:
getFrameInfo
in interfaceInfoStorer
- Parameters:
name
- the name of this information item.frame
- the frame number.- Returns:
- a
String
representation of the value of this information. - Throws:
InfoNotFoundException
- if the name is not found for the specified frame.
-
putInfo
Description copied from interface:InfoStorer
Adds an item to the dimension-specific information. If an info item with the same name exists, then then value will be overwritten.
N.B. For disk-based images, the changes in the info will not be reflected on disk unless theReadableImage.close()
method is called.- Specified by:
putInfo
in interfaceInfoStorer
- Parameters:
name
- the name of the information item to put.value
- an integer value to be associated with this name in the general file information.dim
- the dimension of this image to put the information item. For example in a 3-dimensional image you would put to dimension 0 for slice-specific info.n
- the element to put to. For example in a 3-dimensional image you would put to slicen
to info that applied only to slicen
.- Throws:
IOException
- if the information cannot be addded because of an I/O error.
-
putInfo
Description copied from interface:InfoStorer
Adds an item to the dimension-specific information. If an info item with the same name exists, then then value will be overwritten.
N.B. For disk-based images, the changes in the info will not be reflected on disk unless the close() method is called.- Specified by:
putInfo
in interfaceInfoStorer
- Parameters:
name
- the name of the information item to put.value
- an floating-point value to be associated with this name in the dimension-specific information.dim
- the dimension of this image to put the information. For example in a 3-dimensional image you would put to dimension 0 for slice-specific info.n
- the element to put to. For example in a 3-dimensional image you would put to slicen
to info that applied only to slicen
.- Throws:
IOException
- if the information cannot be addded because of an I/O error.
-
putInfo
Description copied from interface:InfoStorer
Adds an item to the dimension-specific information. If an info item with the same name exists, then then value will be overwritten.
N.B. For disk-based images, the changes in the info will not be reflected on disk unless the close() method is called.- Specified by:
putInfo
in interfaceInfoStorer
- Parameters:
name
- the name of the information item to put.value
- a String value to be associated with this name in the dimension-specific information.dim
- the dimension of this image to put the information. For example in a 3-dimensional image you would put to dimension 0 for slice-specific info.n
- the element to put to. For example in a 3-dimensional image you would put to slicen
to info that applied only to slicen
.- Throws:
IOException
- if the information cannot be addded because of an I/O error.
-
putSliceInfo
Description copied from interface:InfoStorer
Adds all the items in an InfoList to the slice-specific information. If an info item with the same name exists, then then value will be overwritten.The slice number is referenced from 0 to (number of slices - 1).
N.B. For disk-based images, the changes in the info will not be reflected on disk unless theReadableImage.close()
method is called.- Specified by:
putSliceInfo
in interfaceInfoStorer
- Parameters:
infoList
- the list of InfoItems to put.slice
- the slice number.- Throws:
IOException
- if the information cannot be added because of an I/O error.
-
putFrameInfo
Description copied from interface:InfoStorer
Adds all the items in an InfoList to the frame-specific information. If an info item with the same name exists, then the value will be overwritten.The frame number is referenced from 0 to (number of frames - 1).
N.B. For disk-based images, the changes in the info will not be reflected on disk unless theReadableImage.close()
method is called.- Specified by:
putFrameInfo
in interfaceInfoStorer
- Parameters:
infoList
- the list of InfoItems to put.frame
- the frame number.- Throws:
IOException
- if the information cannot be added because of an I/O error.
-
putSliceInfo
Description copied from interface:InfoStorer
Adds an item to the slice-specific information. If an info item with the same name exists, then then value will be overwritten.The slice number is referenced from 0 to (number of slices - 1).
N.B. For disk-based images, the changes in the info will not be reflected on disk unless theReadableImage.close()
method is called.- Specified by:
putSliceInfo
in interfaceInfoStorer
- Parameters:
name
- the name of the information item to put.value
- a String to be associated with this name in the slice-specific info.slice
- the slice number.- Throws:
IOException
- if the information cannot be added because of an I/O error.
-
putFrameInfo
Description copied from interface:InfoStorer
Adds an item to the frame-specific information. If an info item with the same name exists, then then value will be overwritten.The frame number is referenced from 0 to (number of frames).
N.B. For disk-based images, the changes in the info will not be reflected on disk unless theReadableImage.close()
method is called.- Specified by:
putFrameInfo
in interfaceInfoStorer
- Parameters:
name
- the name of the information item to put.value
- a String to be associated with this name in the frame-specific info.frame
- the frame number.- Throws:
IOException
- if the information cannot be added because of an I/O error.
-
removeInfo
Description copied from interface:InfoStorer
Removes an item from the general file information. If an info item with the given name is not present in the general info, then this method does nothing.
N.B. For disk-based images, the changes in the info will not be reflected on disk unless theReadableImage.close()
method is called.- Specified by:
removeInfo
in interfaceInfoStorer
- Parameters:
name
- the name of the information item to be removed.- Throws:
IOException
- if the information cannot be removed.
-
removeInfo
Description copied from interface:InfoStorer
Removes an item from the dimension-specific information. If an info item with the given name is not present in the dimension-specific, then this method does nothing.
N.B. For disk-based images, the changes in the info will not be reflected on disk unless theReadableImage.close()
method is called.- Specified by:
removeInfo
in interfaceInfoStorer
- Parameters:
name
- the name of the information item to put.dim
- the dimension of this image to from which to remove the information. For example in a 3-dimensional image you would put to dimension 0 for slice-specific info.n
- the element to from which to remove the info item. For example in a 3-dimensional image you would put to slicen
to info that applied only to slicen
.- Throws:
IOException
- if the information cannot be removed.
-
copyInfo
Copies all the info fields to another image. The general info will be copied to the toImage, overwriting any pre-existing info. Depending on the dimensionality of the two images, the dimension-specific info may also be copied.- Parameters:
toImage
- theUNCImage
to which info will be copied.- Throws:
IllegalStateException
- if the image is read-only.
-
getInfoList
Description copied from interface:InfoStorer
Returns anInfoList
object which is the general info for this image.- Specified by:
getInfoList
in interfaceInfoStorer
- Returns:
- an
InfoList
which is the general file info for thisInfoStorer
.
-
getInfoList
Description copied from interface:InfoStorer
Returns anInfoList
object applying to a particular dimension/element for this image.- Specified by:
getInfoList
in interfaceInfoStorer
- Parameters:
dim
- the dimension for which to get the information list.n
- the element for which to get the information list.- Returns:
- an
InfoList
object from a particular dimension of thisInfoStorer
. - Throws:
IndexOutOfBoundsException
- if the dimensions supplied do not match this image.
-
getSliceInfoList
Description copied from interface:InfoStorer
Returns anInfoList
object applying to a particular slice of this image.The slice number is referenced from 0 to (number of slices - 1).
- Specified by:
getSliceInfoList
in interfaceInfoStorer
- Parameters:
slice
- the slice number.- Returns:
- an
InfoList
object from a particular slice of thisInfoStorer
. - Throws:
IndexOutOfBoundsException
- if the slice supplied is inappropriate for the dimensions of this image.
-
getFrameInfoList
Description copied from interface:InfoStorer
Returns anInfoList
object applying to a particular frame of this image.The frame number is referenced from 0 to (number of frames - 1).
- Specified by:
getFrameInfoList
in interfaceInfoStorer
- Parameters:
frame
- the frame number.- Returns:
- an
InfoList
object from a particular frame of thisInfoStorer
. - Throws:
IndexOutOfBoundsException
- if the frame supplied is inappropriate for the dimensions of this image.
-
setInfoList
Description copied from interface:InfoStorer
Sets a newInfoList
to the general file info of this image.- Specified by:
setInfoList
in interfaceInfoStorer
- Parameters:
list
- theInfoList
object to set to the general file info for this image.- Throws:
IOException
- if theInfoList
cannot be set.
-
setInfoList
Description copied from interface:InfoStorer
Sets a newInfoList
a specific dimension of this image.- Specified by:
setInfoList
in interfaceInfoStorer
- Parameters:
list
- theInfoList
to associate with this image/dimension.dim
- the dimension to which to set the information list.n
- the element to which to set the information list.- Throws:
IOException
- if theInfoList
cannot be set.
-
setSliceInfoList
Description copied from interface:InfoStorer
Sets a newInfoList
a specific slice of this image.- Specified by:
setSliceInfoList
in interfaceInfoStorer
- Parameters:
list
- theInfoList
to associate with this image/slice.slice
- the slice for which to set the information list.- Throws:
IOException
- if theInfoList
cannot be set.
-
setFrameInfoList
Description copied from interface:InfoStorer
Sets a newInfoList
a specific frame of this image.- Specified by:
setFrameInfoList
in interfaceInfoStorer
- Parameters:
list
- theInfoList
to associate with this image/frame.frame
- the frame for which to set the information list.- Throws:
IOException
- if theInfoList
cannot be set.
-
appendInfoList
Description copied from interface:InfoStorer
Appends anInfoList
to the existing general file info of this image.- Specified by:
appendInfoList
in interfaceInfoStorer
- Parameters:
list
- theInfoList
object to append to the general file info for this image.- Throws:
IOException
- if theInfoList
cannot be appended because of an I/O error.
-
appendInfoList
Description copied from interface:InfoStorer
Appends anInfoList
to that existing for a specific dimension of this image.- Specified by:
appendInfoList
in interfaceInfoStorer
- Parameters:
list
- theInfoList
to append.dim
- the dimension to which to append the information list.n
- the element to which to append the information list.- Throws:
IllegalStateException
-
anonymise
public void anonymise(String patientName, String patientID, Date birthDate, boolean patSex, String patAddr, String patInsurancePlanID, String accessionNumber, boolean patOther, String physicianName, String physicianAddr, String institutionName, String institutionAddr, String deptName, String stationName, String telNumber, boolean removePrivateElements) throws IOException Description copied from interface:WritableImage
Anonymise this WritableImage.- Specified by:
anonymise
in interfaceWritableImage
- Parameters:
patientName
- if non-null, the patient name to substitute.patientID
- if non-null, the patient ID to substitute.birthDate
- if non-null, the birth date to substitute.patSex
- if true, set the sex to "OTHER".patAddr
- if non-null, the address to substitute.patInsurancePlanID
- if non-null, the insurance plan ID to substitute.accessionNumber
- if non-null, the accession number to substitute.patOther
- if true, other patient-related items will be anonymised.physicianName
- if non-null, the physician name to substitute.physicianAddr
- if non-null, the physician's address to substitute.institutionName
- if non-null, the institution name to substitute.institutionAddr
- if non-null, the institution address to substitute.deptName
- if non-null, the department name to substitute.stationName
- if non-null, the station name to substitute.telNumber
- if non-null, the telephone number to substitute for all telephone numbers.removePrivateElements
- if true, all private DICOM elements will be removed.- Throws:
IOException
- if an I/O error occurs during anonymisation.
-
getTotalNSlices
public int getTotalNSlices()Description copied from interface:ReadableImage
Returns the total number of slices in this image. If the image is less than 3-dimensional, this method returns 1; if it is 3-dimensional, it returns the number of slices; if it is 4- or more dimensional, it sums up the total number of planar slices in each dimension and returns the total. For example a 4-dimensional image with 4 slices and 10 frames, the total number of slices is 40.- Specified by:
getTotalNSlices
in interfaceReadableImage
- Returns:
- the number of planar image slices.
-
getNCols
public int getNCols()Description copied from interface:ReadableImage
Returns the number of image columns in this image.- Specified by:
getNCols
in interfaceReadableImage
- Returns:
- the number of image columns.
-
getNRows
public int getNRows()Description copied from interface:ReadableImage
Returns the number of image rows in this image.- Specified by:
getNRows
in interfaceReadableImage
- Returns:
- the number of image rows.
-
getNSlices
public int getNSlices()Description copied from interface:ReadableImage
Returns the number of physical slice locations in this image. If the image dimensionality is greater than or equal to three, then this method returns the number of samples in the third dimension. If the dimensionality is less than 3 two, it returns 1.- Specified by:
getNSlices
in interfaceReadableImage
- Returns:
- the number of physical slice locations.
-
getNFrames
public int getNFrames()Description copied from interface:ReadableImage
Returns the number of frames in a multi-frame image. If the image dimensionality is greater than or equal to four, then this method returns the number of samples in the fourth dimension. If the dimensionality is less than 4, it returns 1.- Specified by:
getNFrames
in interfaceReadableImage
- Returns:
- the number of image (movie) frames.
-
getPixelXSize
Description copied from interface:ReadableImage
Returns the pixel size in the x (horizontal) direction for this image.- Specified by:
getPixelXSize
in interfaceReadableImage
- Returns:
- the pixel size in the x (horizontal) direction in mm.
- Throws:
ParameterNotSetException
- if the pixel size can't be found.
-
getPixelYSize
Description copied from interface:ReadableImage
Returns the pixel size in the y (vertical) direction for this image.- Specified by:
getPixelYSize
in interfaceReadableImage
- Returns:
- the pixel size in the y (vertical) direction in mm.
- Throws:
ParameterNotSetException
- if the pixel size can't be found.
-
getPixelZSize
Description copied from interface:ReadableImage
Returns the separation between the centres of image planes for this image.- Specified by:
getPixelZSize
in interfaceReadableImage
- Returns:
- the pixel size in the z (slice) direction in mm.
- Throws:
ParameterNotSetException
- if the pixel size can't be found.
-
getTimeBetweenFrames
Description copied from interface:ReadableImage
Returns the time between frames in a 4- or higher dimensional image.- Specified by:
getTimeBetweenFrames
in interfaceReadableImage
- Returns:
- the time between frames in seconds.
- Throws:
ParameterNotSetException
- if the time between frames is not set, or if this image doesn't have a dimensionality of at least 4.
-
setPixelXSize
Description copied from class:MultiSliceImage
Sets the pixel size in the x (horizontal) direction for this image.- Specified by:
setPixelXSize
in classMultiSliceImage
- Parameters:
width
- the width of a pixel.- Throws:
IOException
- if and I/O error occurs.
-
setPixelYSize
Description copied from class:MultiSliceImage
Sets the pixel size in the y (vertical) direction for this image.- Specified by:
setPixelYSize
in classMultiSliceImage
- Parameters:
height
- the height of a pixel.- Throws:
IOException
- if an I/O error occurs.
-
setPixelZSize
Description copied from class:MultiSliceImage
Sets the pixel size in the z (slice) direction for this image.- Specified by:
setPixelZSize
in classMultiSliceImage
- Parameters:
thickness
- the thickness of a pixel.- Throws:
IOException
- if an I/O error occurs.
-
setTimeBetweenFrames
Description copied from class:MultiSliceImage
Sets the time between frames in a 4- or higher dimensional image.- Specified by:
setTimeBetweenFrames
in classMultiSliceImage
- Parameters:
deltaT
- the time between frames (in seconds).- Throws:
IOException
- if an I/O error occurs.
-
getImagePositionPatient
public org.jogamp.vecmath.Point3f getImagePositionPatient()Description copied from interface:ReadableImage
Returns the coordinates of the center of the first pixel of the image, in mm, in patient coordinates. This method will only return if the image pixels form a regular array of pixels with parallel image planes; otherwise a ParameterNotSetException is thrown.- Specified by:
getImagePositionPatient
in interfaceReadableImage
- Returns:
- the Left,Posterior,Superior (LPS) coordinates of the first pixel
in the image data matrix. Returns
null
if the position cannot be retrieved from this image.
-
getImagePositionPatient
public org.jogamp.vecmath.Point3f getImagePositionPatient(int slice) Description copied from interface:ReadableImage
Returns the coordinates of the center of the first pixel of the specified slice of this image, in mm, in patient coordinates.- Specified by:
getImagePositionPatient
in interfaceReadableImage
- Parameters:
slice
- the slice number (indexed from 0) for which to return the pixel coordinates.- Returns:
- the Left,Posterior,Superior (LPS) coordinates of the first pixel
in the specified slice of this image. Returns
null
if the position cannot be retrieved from this image.
-
setImagePositionPatient
public void setImagePositionPatient(org.jogamp.vecmath.Point3f position, int slice) Description copied from interface:WritableImage
Sets the coordinates of the center of the first pixel of the image, in mm, in patient (LPS) coordinates, for one slice of this image.- Specified by:
setImagePositionPatient
in interfaceWritableImage
- Parameters:
position
- the Left,Posterior,Superior (LPS) coordinates of the first pixel of this specified slice in the image data matrix.slice
- the slice for which to set the position.
-
getImageOrientationPatient
public org.jogamp.vecmath.Vector3f[] getImageOrientationPatient()Description copied from interface:ReadableImage
Returns the direction cosines of the row, column and slice directions (for increasing row, column and slice) of the image, in patient (L,P,S) coordinates.- Specified by:
getImageOrientationPatient
in interfaceReadableImage
- Returns:
- a
Vector3f
[], corresponding to the direction cosines of the image row, column and slice directions in Left,Posterior,Superior (LPS) coordinates. Returnsnull
if the direction cosines cannot be retrieved from this image.
-
getImageOrientationPatient
public org.jogamp.vecmath.Vector3f[] getImageOrientationPatient(int slice) Description copied from interface:ReadableImage
Returns the direction cosines of the row, column and slice directions (for increasing row, column and slice) of the image, in patient coordinates.- Specified by:
getImageOrientationPatient
in interfaceReadableImage
- Parameters:
slice
- the slice for which to return the image orientation.- Returns:
- a
Vector3f
[], corresponding to the direction cosines of the image row, column and slice directions in Left,Posterior,Superior (LPS) coordinates. Returnsnull
if the direction cosines cannot be retrieved from this image.
-
setImageOrientationPositionPatient
public void setImageOrientationPositionPatient(org.jogamp.vecmath.Vector3f[] orientation, org.jogamp.vecmath.Point3f position, boolean force) Description copied from class:MultiSliceImage
Sets the direction cosines of the row, column and slice directions of the image, the coordinates of the center of the first pixel of the image, in patient (LPS) coordinates.N.B. the actual position and orientation set by this method may not be those specified. For example, for NIFTI-1 images, the actual orientation and position may depend on the user
Preferences
for whether to put pixel values in an order that is compatible with SPM. After using this method, you should use theReadableImage.getImageOrientationPatient()
andReadableImage.getImagePositionPatient()
methods to obtain the real orientation and positions set.If the orientation or position cannot be set for this image, this method does not report an error.
- Specified by:
setImageOrientationPositionPatient
in interfaceWritableImage
- Specified by:
setImageOrientationPositionPatient
in classMultiSliceImage
- Parameters:
orientation
- the direction cosines of the image row, column and (optionally) slice directions respectively in Left,Posterior,Superior (LPS) coordinates. If orientation isnull
, this method will attempt to clear any orientation information, if that is supported by the image format.position
- the Left,Posterior,Superior (LPS) coordinates of the centre of the first pixel in the image data matrix. If position isnull
, this method will attempt to clear any positional information, if that is supported by the image format.force
- iftrue
, this method will force the orientation and position to be set as requested, regardless of the userPreferences
. This can be useful if you read the orientation from an existing image, and you want to set the orientation exactly the same in a new image.
-
setImageOrientationPatient
public void setImageOrientationPatient(org.jogamp.vecmath.Vector3f[] orientation, int slice) throws IndexOutOfBoundsException Description copied from class:MultiSliceImage
Sets the direction cosines of the row, column and slice directions (for increasing row, column and slice) of the image, in patient (LPS) coordinates.If the orientation cannot be set for this image, this method does nothing.
- Specified by:
setImageOrientationPatient
in interfaceWritableImage
- Specified by:
setImageOrientationPatient
in classMultiSliceImage
- Parameters:
orientation
- the direction cosines of the image row, column and (optionally) slice directions respectively in Left,Posterior,Superior (LPS) coordinates.slice
- the slice for which to set the orientation.- Throws:
IndexOutOfBoundsException
- if thecosines
array does not have the correct dimensions.
-
setPixelSpacing
Description copied from interface:WritableImage
Sets the distance (in mm) between pixel centres in the row, column and slice directions of the image, and the time between movie frames (for 4-D images) in seconds. The distances and time should always be positive values.- Specified by:
setPixelSpacing
in interfaceWritableImage
- Parameters:
spacing
- a Float[] of length up to 4, corresponding to the distance between pixel centres in the row, column, slice and time directions, respectively. Spacing values will only be set for image dimensions where the spacing array is long enough and the array element is non-null. The first element of the array indicates the horizontal pixel size; the second is the vertical pixel size; the third is the pixel depth; fourth is the time between frames.- Throws:
IOException
- if the pixel spacing cannot be set for this image.
-
getSliceThickness
Description copied from interface:ReadableImage
Returns the slice thickness (in mm). This method is necessary because the slice thickness may not be the same as the inter-slice pixel spacing, if there is a gap between slices.- Specified by:
getSliceThickness
in interfaceReadableImage
- Returns:
- the slice thickness in mm, or null if the slice thickness is not set, or its value is corrupt.
-
setSliceThickness
Description copied from interface:WritableImage
Sets the slice thickness (in mm). This method is necessary because the slice thickness may not be the same as the inter-slice pixel spacing, if there is a gap between slices.- Specified by:
setSliceThickness
in interfaceWritableImage
- Parameters:
thickness
- the slice thickness in mm, or null to remove the slice thickness information.- Throws:
IOException
- if the slice thickness cannot be set for this image.
-
getStudyID
Description copied from interface:ReadableImage
Returns the study ID for this ReadableImage.- Specified by:
getStudyID
in interfaceReadableImage
- Returns:
- the study ID. Returns
null
if the study ID can't be found.
-
setStudyID
Description copied from interface:WritableImage
Sets the study ID for this image.
N.B. For disk-based images, the changes in the study ID will not be reflected on disk unless the close() method is called.- Specified by:
setStudyID
in interfaceWritableImage
- Parameters:
studyID
- the new study ID to be assigned to this image.
-
getPatientPosition
Description copied from interface:ReadableImage
Returns the position in which the patient is lying in the scanning equipment. For example,PatientPosition.HFS
(head-first supine).- Specified by:
getPatientPosition
in interfaceReadableImage
- Returns:
- the position in which the patient is lying in the scanning equipment, or
null
if the patient position cannot be determined.
-
setPatientPosition
Description copied from interface:WritableImage
Sets the position in which the patient is lying in the scanning equipment for thisWritableImage
.- Specified by:
setPatientPosition
in interfaceWritableImage
- Parameters:
position
- the position in which the patient is lying in the scanning equipment. e.g.PatientPosition.HFS
(head-first supine).
-
supportsIntensityRescaling
public boolean supportsIntensityRescaling()Returnstrue
because UNC images support intensity rescaling.- Specified by:
supportsIntensityRescaling
in interfaceWritableImage
- Returns:
true
.
-
getIntensityRescale
public float[] getIntensityRescale()Description copied from interface:ReadableImage
Returns the valuesm
andb
in the relationship between pixel intensity (I) values and the output units specified ingetRescaleUnits()
in the expression:
Output units = m*I + b
.- Specified by:
getIntensityRescale
in interfaceReadableImage
- Returns:
- an array will be of length 2 where the first element is
m
and the second isb
.
-
setIntensityRescale
Description copied from interface:WritableImage
Sets the valuesm
andb
in the relationship between pixel intensity (I) values and the output units specified inWritableImage.setRescaleUnits(com.xinapse.dicom.RescaleUnits)
in the expression:
Output units = m*I + b
.- Specified by:
setIntensityRescale
in interfaceWritableImage
- Parameters:
rescaleSlope
- the value ofm
in the expression above.rescaleIntercept
- the value ofb
in the expression above.- Throws:
IOException
- if an I/O error occurs.
-
getRescaleUnits
public com.xinapse.dicom.RescaleUnits getRescaleUnits()Description copied from interface:ReadableImage
Returns the output units of Intensity Rescale Slope and Intensity Rescale Intercept, retrieved bygetIntensityRescale()
.- Specified by:
getRescaleUnits
in interfaceReadableImage
- Returns:
- the RescaleUnits describing the physical meaning of the pixel intensity units. Returns the RescaleUnits.US if the physical meaning is unknown, or arbitrary.
-
setRescaleUnits
Description copied from interface:WritableImage
Sets the rescale units.- Specified by:
setRescaleUnits
in interfaceWritableImage
- Parameters:
units
- the rescale units.- Throws:
IOException
- if the rescale units cannot be set.
-
appendAuditInfo
Description copied from interface:WritableImage
Appends audit trail information to this image.- Specified by:
appendAuditInfo
in interfaceWritableImage
- Parameters:
name
- a String describing the name of the action that was performed on this image.value
- a String describing the value of the action that was performed on this image.
-
setPatientName
Description copied from interface:WritableImage
Attempts to set the patient name for this image. If new patient name String is longer than is allowed by the image format, then it is truncated before being applied. No exception occurs if the image format does not support patient name recording.
N.B. For disk-based images, the changes in the patient name will not be reflected on disk unless the close() method is called.- Specified by:
setPatientName
in interfaceWritableImage
- Parameters:
patientName
- the new patient name to be assigned to this image.- Throws:
IOException
- if the patient name cannot be set.
-
setPatientID
Description copied from interface:WritableImage
Sets the patient ID for this image. If the new patient ID String is longer than is allowed by the image format, then it is truncated before being applied. No exception occurs if the image format does not support patient ID recording.
N.B. For disk-based images, the changes in the patient ID will not be reflected on disk unless the close() method is called.- Specified by:
setPatientID
in interfaceWritableImage
- Parameters:
patientID
- the new patient ID to be assigned to this image.- Throws:
IOException
- if the patient ID cannot be set.
-
setPatientDoB
Description copied from interface:WritableImage
Sets the patient's date of birth for this image. No exception occurs if the image format does not support patient date of birth recording.
N.B. For disk-based images, the changes in the patient's birth date will not be reflected on disk unless the close() method is called.- Specified by:
setPatientDoB
in interfaceWritableImage
- Parameters:
patientDoB
- the new patient date of birth to be assigned to this image.- Throws:
IOException
- if the patient date of birth cannot be set.
-
setPatientSex
Description copied from interface:WritableImage
Sets the patient sex for this image.- Specified by:
setPatientSex
in interfaceWritableImage
- Parameters:
sex
- the patient sex to be assigned to this image.- Throws:
IOException
- if the patient sex cannot be set.
-
setScanDate
Description copied from interface:WritableImage
Sets the scan date/time for this image.
N.B. For disk-based images, the changes in the scan date will not be reflected on disk unless the close() method is called.- Specified by:
setScanDate
in interfaceWritableImage
- Parameters:
scanDate
- the new scan date/time to be assigned to this image.- Throws:
IOException
- if the scan date cannot be set.
-
setPulseSequence
Description copied from interface:WritableImage
Sets the pulse sequence name for this image.
N.B. For disk-based images, the changes in the scanning sequence will not be reflected on disk unless the close() method is called.- Specified by:
setPulseSequence
in interfaceWritableImage
- Parameters:
seqName
- the new name of the pulse sequence to be assigned to this image.- Throws:
IOException
- if the pulse sequence name cannot be set.
-
setScanningSequence
Description copied from interface:WritableImage
Sets the DICOM scanning sequence for this image.
N.B. For disk-based images, the changes in the scanning sequence will not be reflected on disk unless the close() method is called.- Specified by:
setScanningSequence
in interfaceWritableImage
- Parameters:
seq
- the new scanning sequence to be assigned to this image.- Throws:
IOException
- if the scanning sequence cannot be set.
-
setSequenceVariant
Description copied from interface:WritableImage
Sets the DICOM scanning sequence variant for this image.
N.B. For disk-based images, the changes in the scanning sequence variant will not be reflected on disk unless the close() method is called.- Specified by:
setSequenceVariant
in interfaceWritableImage
- Parameters:
seqVar
- the new scanning sequence variant to be assigned to this image.- Throws:
IOException
- if the scanning sequence variant cannot be set.
-
setSeriesNumber
Description copied from interface:WritableImage
Sets the series number for this image.
N.B. For disk-based images, the changes in the series number will not be reflected on disk unless the close() method is called.- Specified by:
setSeriesNumber
in interfaceWritableImage
- Parameters:
seriesNumber
- the new series number to be assigned to this image.- Throws:
IOException
- if the series number cannot be set.
-
setSeriesDescription
Description copied from interface:WritableImage
Sets a short description of the series (scan).
N.B. For disk-based images, the changes in the series description will not be reflected on disk unless the close() method is called.- Specified by:
setSeriesDescription
in interfaceWritableImage
- Parameters:
seriesDescription
- the new short description of the series, or null if none is available.- Throws:
IOException
- if the description cannot be set.
-
getBodyPart
public com.xinapse.dicom.BodyPart getBodyPart()Description copied from class:MultiSliceImage
By default, body part recording is not supported, so this method always returnsnull
.- Specified by:
getBodyPart
in interfaceReadableImage
- Overrides:
getBodyPart
in classMultiSliceImage
- Returns:
null
.
-
setBodyPart
Description copied from class:MultiSliceImage
By default, body part recording is not supported, so this method does nothing.- Specified by:
setBodyPart
in interfaceWritableImage
- Overrides:
setBodyPart
in classMultiSliceImage
- Parameters:
bodyPart
- body the imaged body part.- Throws:
IOException
- if body part cannot be set.
-
getLaterality
public com.xinapse.dicom.Laterality getLaterality()Description copied from class:MultiSliceImage
By default, laterality recording is not supported, so this method returnsLaterality.BOTH
.- Specified by:
getLaterality
in interfaceReadableImage
- Overrides:
getLaterality
in classMultiSliceImage
- Returns:
Laterality.BOTH
.
-
setLaterality
Description copied from class:MultiSliceImage
By default, laterality recording is not supported, so this method does nothing.- Specified by:
setLaterality
in interfaceWritableImage
- Overrides:
setLaterality
in classMultiSliceImage
- Parameters:
laterality
- the image laterality.- Throws:
IOException
- if laterality cannot be set.
-
setScanTR
Description copied from interface:WritableImage
Sets the scan repetition time for this image. No exception occurs if the image format does not support scan TR recording.
N.B. For disk-based images, the changes in the scan TR will not be reflected on disk unless the close() method is called.- Specified by:
setScanTR
in interfaceWritableImage
- Parameters:
TR
- the new scan TR to be assigned to this image. If null, the TR should be unset.- Throws:
IOException
- if the scan TR cannot be set.
-
setScanTI
Description copied from interface:WritableImage
Sets the scan inversion time for this image. No exception occurs if the image format does not support scan TI recording.
N.B. For disk-based images, the changes in the scan TI will not be reflected on disk unless the close() method is called.- Specified by:
setScanTI
in interfaceWritableImage
- Parameters:
TI
- the new scan TI to be assigned to this image. If null, the TI should be unset.- Throws:
IOException
- if the scan TI cannot be set.
-
setScanTE
Description copied from interface:WritableImage
Sets the scan echo time for this image. No exception occurs if the image format does not support scan TE recording.
N.B. For disk-based images, the changes in the scan TE will not be reflected on disk unless the close() method is called.- Specified by:
setScanTE
in interfaceWritableImage
- Parameters:
TE
- the new scan TE to be assigned to this image. If null, the TE should be unset.- Throws:
IOException
- if the scan TE cannot be set.
-
setScanTE
Description copied from interface:WritableImage
Sets the scan echo time for one dimension index of this image. For 3-D images, the dimension index is the slice dimension. For 4-D (or higher dimensionality) images, the dimension index is the frame dimension. No exception occurs if the image format does not support a scan TE recording.
N.B. For disk-based images, the changes in the scan TE will not be reflected on disk unless the close() method is called.- Specified by:
setScanTE
in interfaceWritableImage
- Parameters:
TE
- the new scan TE to be assigned to this image.index
- the slice number for which to set the echo time.- Throws:
IOException
- if the scan TE cannot be set because of an I/O error.
-
setSaturationFreqOffsetPPM
Description copied from interface:WritableImage
Sets the saturation frequency offset in PPM for this image. No exception occurs if the image format does not support saturation frequency offset recording.
N.B. For disk-based images, the changes in the saturation frequency offset will not be reflected on disk unless the close() method is called.- Specified by:
setSaturationFreqOffsetPPM
in interfaceWritableImage
- Parameters:
freqOffset
- the new saturation frequency offset to be assigned to this image. If null, the saturation frequency offset should be unset.- Throws:
IOException
- if the saturation frequency offset cannot be set.
-
setSaturationFreqOffsetPPM
Description copied from interface:WritableImage
Sets the saturation frequency offset for one dimension index of this image. For 3-D images, the dimension index is the slice dimension. For 4-D (or higher dimensionality) images, the dimension index is the frame dimension. No exception occurs if the image format does not support saturation frequency offset recording.
N.B. For disk-based images, the changes in the saturation frequency offset will not be reflected on disk unless the close() method is called.- Specified by:
setSaturationFreqOffsetPPM
in interfaceWritableImage
- Parameters:
freqOffset
- the new saturation frequency offset to be assigned to this image.index
- the slice number for which to set the saturation frequency offset.- Throws:
IOException
- if the saturation frequency offset cannot be set because of an I/O error.
-
setEchoTrainLength
Description copied from interface:WritableImage
Sets the echo train length for this image. No exception occurs if the image format does not support a echo train length recording.
N.B. For disk-based images, the changes in the echo train length will not be reflected on disk unless the close() method is called.- Specified by:
setEchoTrainLength
in interfaceWritableImage
- Parameters:
etl
- the new scan echo train length to be assigned to this image. If null, the echo train length is unassigned.- Throws:
IOException
- if the echo train length cannot be set because of an I/O error.
-
setFlipAngle
Description copied from interface:WritableImage
Sets the excitation pulse flip angle for this image. No exception occurs if the image format does not support flip angle recording.
N.B. For disk-based images, the changes in the scan flip angle will not be reflected on disk unless the close() method is called.- Specified by:
setFlipAngle
in interfaceWritableImage
- Parameters:
flipAngle
- the new scan flip angle to be assigned to this image. If null, the flip angle should be unset.- Throws:
IOException
- if the scan flip angle cannot be set.
-
getPatientName
Description copied from interface:ReadableImage
Returns the patient name for this image.- Specified by:
getPatientName
in interfaceReadableImage
- Returns:
- the patient name for this image, or
null
if the patient name can't be found.
-
getPatientID
Description copied from interface:ReadableImage
Returns the patient ID for this image.- Specified by:
getPatientID
in interfaceReadableImage
- Returns:
- the patientID for this image, or
null
if the patientID can't be found.
-
getPatientDoB
Description copied from interface:ReadableImage
Returns the patient date of birth for this image.- Specified by:
getPatientDoB
in interfaceReadableImage
- Returns:
- the patient's date of birth for this image, or
null
if the patient's dob can't be found.
-
getPatientSex
public com.xinapse.dicom.Sex getPatientSex()Description copied from interface:ReadableImage
Returns the patient sex for this image.- Specified by:
getPatientSex
in interfaceReadableImage
- Returns:
- the patient's sex image, or
Sex.OTHER
if the patient's sex can't be found.
-
getScanDate
Description copied from interface:ReadableImage
Returns the scan Date for this image.- Specified by:
getScanDate
in interfaceReadableImage
- Returns:
- the date/time at which this scan was performed, or
null
if the scan date can't be found.
-
getPulseSequence
Description copied from interface:ReadableImage
Returns the name of the pulse sequence with which this image was collected.- Specified by:
getPulseSequence
in interfaceReadableImage
- Returns:
- the name of the pulse sequence used to collect this image.
-
getScanningSequence
Description copied from interface:ReadableImage
Returns the DICOM Scanning Sequence with which this image was collected.- Specified by:
getScanningSequence
in interfaceReadableImage
- Returns:
- the DICOM Scanning Sequence used to collect this image, or
null
if the scanning sequence isn't available.
-
getSequenceVariant
Description copied from interface:ReadableImage
Returns the DICOM Scanning Sequence Variant with which this image was collected.- Specified by:
getSequenceVariant
in interfaceReadableImage
- Returns:
- the DICOM Scanning Sequence Variant used to collect this image, or
null
if the sequence variant isn't available.
-
getSeriesNumber
Description copied from interface:ReadableImage
Returns the series number for this ReadableImage.- Specified by:
getSeriesNumber
in interfaceReadableImage
- Returns:
- the series number. Returns
null
if the series number can't be found.
-
getSeriesDescription
Description copied from interface:ReadableImage
Returns a short description of the series (scan), such as is provided by the DICOM series description.- Specified by:
getSeriesDescription
in interfaceReadableImage
- Returns:
- a short description of the series, or null if none is available.
-
getScanTR
Description copied from interface:ReadableImage
Returns the scan repetition time for this image.- Specified by:
getScanTR
in interfaceReadableImage
- Returns:
- the scan TR for this image, or null if not set for this image.
-
getScanTI
Description copied from interface:ReadableImage
Returns the scan inversion time for this image.- Specified by:
getScanTI
in interfaceReadableImage
- Returns:
- the scan TI for this image, or null if not set for this image.
-
getScanTE
Description copied from interface:ReadableImage
Returns the scan echo time for this image if it has a single echo-time.- Specified by:
getScanTE
in interfaceReadableImage
- Returns:
- the scan TE for this image, or null if not set for this image.
-
getScanTE
Description copied from interface:ReadableImage
Returns the scan echo time for one dimension index of this image. For 3-D images, the dimension index is the slice dimension. For 4-D (or higher dimensionality) images, the dimension index is the frame dimension.- Specified by:
getScanTE
in interfaceReadableImage
- Parameters:
index
- the index for which to return the echo time.- Returns:
- the scan TE for the specified index of this image, or null if not set for this image.
- Throws:
IndexOutOfBoundsException
- if the index is bad for this image.
-
getSaturationFreqOffsetPPM
Description copied from interface:ReadableImage
Returns the scan saturation frequency offset for this image if it has a single saturation frequency offset in parts-per-million.- Specified by:
getSaturationFreqOffsetPPM
in interfaceReadableImage
- Returns:
- the scan saturation frequency offset for this image, or null if not set for this image.
-
getSaturationFreqOffsetPPM
Description copied from interface:ReadableImage
Returns the scan saturation frequency offset for one dimension index of this image in parts-per-million. For 3-D images, the dimension index is the slice dimension. For 4-D (or higher dimensionality) images, the dimension index is the frame dimension.- Specified by:
getSaturationFreqOffsetPPM
in interfaceReadableImage
- Parameters:
index
- the index for which to return the saturation frequency offset.- Returns:
- the scan TE for the specified index of this image, or null if not set for this image.
- Throws:
IndexOutOfBoundsException
- if the index is bad for this image.
-
getEchoTrainLength
Description copied from interface:ReadableImage
Returns the scan echo train length for this image.- Specified by:
getEchoTrainLength
in interfaceReadableImage
- Returns:
- the echo train length for this image, or null if not set for this image.
-
getFlipAngle
Description copied from interface:ReadableImage
Returns the excitation pulse flip angle for this image.- Specified by:
getFlipAngle
in interfaceReadableImage
- Returns:
- the excitation pulse flip angle for this image, or null if not set for this image.
-
getSliceDWbValue
Description copied from interface:ReadableImage
Returns the diffusion-weighting b-value for one slice of this image.- Specified by:
getSliceDWbValue
in interfaceReadableImage
- Parameters:
slice
- the slice number for which to return the b-value.- Returns:
- the diffusion-weighting b-value for the specified slice of this image, or
null
if the b-value cannot be found, or if the modality used to collect the image doesn't have a b-value defined - Throws:
IndexOutOfBoundsException
- if the slice number is bad for this image.
-
getFrameDWbValue
Description copied from interface:ReadableImage
Returns the diffusion-weighting b-value for one frame of this 4-D image.- Specified by:
getFrameDWbValue
in interfaceReadableImage
- Parameters:
frame
- the frame number for which to return the b-value.- Returns:
- the diffusion-weighting b-value for the specified frame of this image, or
null
if the b-value cannot be found, or if the modality used to collect the image doesn't have a b-value defined - Throws:
IndexOutOfBoundsException
- if the frame number is bad for this image, or it isn't a 4-D image.
-
setSliceDWbValue
Description copied from interface:WritableImage
Sets the diffusion-weighting b-value for one slice of this image. No exception occurs if the image format does not support recording the b-value.
N.B. For disk-based images, the changes in the b-value will not be reflected on disk unless the close() method is called.- Specified by:
setSliceDWbValue
in interfaceWritableImage
- Parameters:
bValue
- the new b-value to be assigned to this image.index
- the slice number for which to set the b-value.- Throws:
IOException
- if the scan b-value cannot be set.
-
setFrameDWbValue
Description copied from interface:WritableImage
Sets the diffusion-weighting b-value for one "frame" of this 4-D image. No exception occurs if the image format does not support recording the b-value.
N.B. For disk-based images, the changes in the b-value will not be reflected on disk unless the close() method is called.- Specified by:
setFrameDWbValue
in interfaceWritableImage
- Parameters:
bValue
- the new b-value to be assigned to this image.frame
- the frame number for which to set the b-value.- Throws:
IOException
- if the scan b-value cannot be set.
-
getSliceDWGradientVector
public org.jogamp.vecmath.Vector3f getSliceDWGradientVector(int slice) throws IndexOutOfBoundsException Description copied from interface:ReadableImage
Returns the diffusion-weighting gradient-vector for one slice of this image.- Specified by:
getSliceDWGradientVector
in interfaceReadableImage
- Parameters:
slice
- the slice number for which to return the gradient-vector.- Returns:
- the diffusion-weighting gradient-vector for the specified slice of this image, or
null
if the gradient vector cannot be found, or if the modality used to collect the image doesn't have a gradient vector defined. - Throws:
IndexOutOfBoundsException
- if the slice number is bad for this image.
-
getFrameDWGradientVector
public org.jogamp.vecmath.Vector3f getFrameDWGradientVector(int frame) throws IndexOutOfBoundsException Description copied from interface:ReadableImage
Returns the diffusion-weighting gradient-vector for one frame of this image 4-D image.- Specified by:
getFrameDWGradientVector
in interfaceReadableImage
- Parameters:
frame
- the frame number for which to return the gradient-vector.- Returns:
- the diffusion-weighting gradient-vector for the specified frame of this image, or
null
if the gradient vector cannot be found, or if the modality used to collect the image doesn't have a gradient vector defined. - Throws:
IndexOutOfBoundsException
- if the frame number is bad for this image, or it isn't a 4-D image.
-
setSliceDWGradientVector
public void setSliceDWGradientVector(org.jogamp.vecmath.Vector3f gradVec, int index) throws IOException Description copied from interface:WritableImage
Sets the diffusion-weighting gradient vector for one slice of this image. No exception occurs if the image format does not support recording the gradient vector.
N.B. For disk-based images, the changes in the gradient vector will not be reflected on disk unless the close() method is called.- Specified by:
setSliceDWGradientVector
in interfaceWritableImage
- Parameters:
gradVec
- the new gradient vector to be assigned to this image.index
- the slice number for which to set the gradient vector.- Throws:
IOException
- if the scan gradient vector cannot be set.
-
setFrameDWGradientVector
public void setFrameDWGradientVector(org.jogamp.vecmath.Vector3f gradVec, int frame) throws IOException Description copied from interface:WritableImage
Sets the diffusion-weighting gradient vector for one "frame" of this 4-D image. No exception occurs if the image format does not support recording the gradient vector.
N.B. For disk-based images, the changes in the gradient vector will not be reflected on disk unless the close() method is called.- Specified by:
setFrameDWGradientVector
in interfaceWritableImage
- Parameters:
gradVec
- the new gradient vector to be assigned to this image.frame
- the frame number for which to set the gradient vector.- Throws:
IOException
- if the scan gradient vector cannot be set.
-
getSliceDWBMatrix
Description copied from interface:ReadableImage
Returns the diffusion-weighting b-matrix for one slice of this image.- Specified by:
getSliceDWBMatrix
in interfaceReadableImage
- Parameters:
slice
- the slice number for which to get the b-matrix.- Returns:
- the diffusion-weighting b-matrix for this image if it is a
magnetic resonance image, or
null
if the B-matrix cannot be found, or if the modality used to collect the image doesn't have a B-matrix defined. The 6 unique matrix elements are returned as a float[] with elements in the order bXX, bXY, bXZ, bYY, bYZ, bZZ. - Throws:
IndexOutOfBoundsException
- if the slice number is bad for this image.
-
getFrameDWBMatrix
Description copied from interface:ReadableImage
Returns the diffusion-weighting b-matrix for one frame of this image.- Specified by:
getFrameDWBMatrix
in interfaceReadableImage
- Parameters:
frame
- the frame number for which to get the b-matrix.- Returns:
- the diffusion-weighting b-matrix for this image if it is a
magnetic resonance image, or
null
if the B-matrix cannot be found, or if the modality used to collect the image doesn't have a B-matrix defined. The 6 unique matrix elements are returned as a float[] with elements in the order bXX, bXY, bXZ, bYY, bYZ, bZZ. - Throws:
IndexOutOfBoundsException
- if the frame number is bad for this image, or it isn't a 4-D image.
-
setSliceDWBMatrix
Description copied from interface:WritableImage
Sets the diffusion-weighting B-matrix for one slice of this image. No exception occurs if the image format does not support recording the B-matrix.
N.B. For disk-based images, the changes in the B-matrix will not be reflected on disk unless the close() method is called.- Specified by:
setSliceDWBMatrix
in interfaceWritableImage
- Parameters:
bMatrix
- the new B-matrix to be assigned to this image.slice
- the slice number for which to set the B-matrix.- Throws:
IOException
- if the scan B-matrix cannot be set.
-
setFrameDWBMatrix
public void setFrameDWBMatrix(float[] bMatrix, int frame) throws IOException, IndexOutOfBoundsException Description copied from interface:WritableImage
Sets the diffusion-weighting B-matrix for one "frame" of this 4-D image. No exception occurs if the image format does not support recording the B-matrix.
N.B. For disk-based images, the changes in the B-matrix will not be reflected on disk unless the close() method is called.- Specified by:
setFrameDWBMatrix
in interfaceWritableImage
- Parameters:
bMatrix
- the new B-matrix to be assigned to this image.frame
- the frame number for which to set the B-matrix.- Throws:
IOException
- if the scan B-matrix cannot be set.IndexOutOfBoundsException
- if this is not a 4-D image.
-
getSliceTriggerDelayMS
Description copied from interface:ReadableImage
Returns the trigger delay, in milliseconds, for one slice of this image.- Specified by:
getSliceTriggerDelayMS
in interfaceReadableImage
- Parameters:
slice
- the slice number for which to get the trigger delay.- Returns:
- the trigger delay (in milliseconds) for this image, or
null
if the trigger delay cannot be found. - Throws:
IndexOutOfBoundsException
- if the slice number is bad for this image, or it isn't a 4-D image.
-
getFrameTriggerDelayMS
Description copied from interface:ReadableImage
Returns the trigger delay, in milliseconds, for one frame of this image.- Specified by:
getFrameTriggerDelayMS
in interfaceReadableImage
- Parameters:
frame
- the frame number for which to get the trigger delay.- Returns:
- the trigger delay (in milliseconds) for this image, or
null
if the trigger delay cannot be found. - Throws:
IndexOutOfBoundsException
- if the frame number is bad for this image, or it isn't a 4-D image.
-
setSliceTriggerDelayMS
Description copied from interface:WritableImage
Sets the trigger delay (in milliseconds) for one slice of this image. No exception occurs if the image format does not support recording the trigger delay.
N.B. For disk-based images, the changes in the trigger delay will not be reflected on disk unless the close() method is called.- Specified by:
setSliceTriggerDelayMS
in interfaceWritableImage
- Parameters:
delay
- the new trigger delay (in milliseconds) to be assigned to this image slice.index
- the slice number for which to set the trigger delay.- Throws:
IOException
- if the trigger delay cannot be set.
-
setFrameTriggerDelayMS
Description copied from interface:WritableImage
Sets the trigger delay (in milliseconds) for one "frame" of this 4-D image. No exception occurs if the image format does not support recording the trigger delay.
N.B. For disk-based images, the changes in the trigger delay will not be reflected on disk unless the close() method is called.- Specified by:
setFrameTriggerDelayMS
in interfaceWritableImage
- Parameters:
delay
- the new trigger delay to be assigned to this image.frame
- the frame number for which to set the trigger delay.- Throws:
IOException
- if the trigger delay cannot be set.
-
getDescription
Description copied from interface:ReadableImage
Returns a String description of this image.- Specified by:
getDescription
in interfaceReadableImage
- Returns:
- a String describing this image.
-
getDescription
Description copied from interface:ReadableImage
Returns a String description of this one particular slice of this image.- Specified by:
getDescription
in interfaceReadableImage
- Parameters:
slice
- the slice to describe.- Returns:
- a String describing the given slice of this image.
- Throws:
IndexOutOfBoundsException
-
getHTMLDescription
Description copied from interface:ReadableImage
Returns a String description of this image in HTML format.- Specified by:
getHTMLDescription
in interfaceReadableImage
- Returns:
- a String describing this image.
-
getHTMLDescription
Description copied from interface:ReadableImage
Returns a String description of a slice of this image in HTML format.- Specified by:
getHTMLDescription
in interfaceReadableImage
- Parameters:
slice
- the slice number.- Returns:
- a String describing this image slice.
- Throws:
IndexOutOfBoundsException
- if the slice is bad for this image.
-
getNativeColourMapping
Description copied from interface:ReadableImage
Returns aColourMapping
if this image has an associated colour mapping.- Specified by:
getNativeColourMapping
in interfaceReadableImage
- Returns:
- a
ColourMapping
if this image has an associated colour mapping. Returnsnull
if it does not. - Throws:
InvalidColourMappingException
- if this image has an associated ColourMapping, but the ColourMapping cannot be successfully retrieved.
-
setNativeColourMapping
Description copied from interface:WritableImage
Sets theColourMapping
for this image. No exception occurs if the image format does not support a colour mapping.
N.B. For disk-based images, the changes in the ColourMapping may not be reflected on disk unless the close() method is called.- Specified by:
setNativeColourMapping
in interfaceWritableImage
- Parameters:
colourMapping
- the new ColourMapping to be assigned to this image.- Throws:
IOException
- if the ColourMapping cannot be set for this image.
-
getMin
Description copied from interface:ReadableImage
Returns the minimum pixel intensity in the image.- Specified by:
getMin
in interfaceReadableImage
- Returns:
- the maximum pixel intensity as a
Double
, ornull
if the intensity min hasn't been calculated for this image. - Throws:
InvalidImageException
- if the intensity cannot be returned as a Double.
-
getMax
Description copied from interface:ReadableImage
Returns the maximum pixel intensity in the image.- Specified by:
getMax
in interfaceReadableImage
- Returns:
- the maximum pixel intensity as a
Double
, ornull
if the intensity max hasn't been calculated for this image. - Throws:
InvalidImageException
- if the intensity cannot be returned as a Double.
-
getCommonName
Returns the common name for this type of image.- Returns:
- the
String
"UNC".
-
getImageTypeName
Description copied from interface:WritableImage
Returns the normal human readable name for this type of image.- Specified by:
getImageTypeName
in interfaceWritableImage
- Returns:
- a
String
with a one-word description of this type of image.
-
getCopy
Description copied from interface:WritableImage
Returns a copy of thisWritableImage
.- Specified by:
getCopy
in interfaceReadableImage
- Specified by:
getCopy
in interfaceWritableImage
- Returns:
- a copy of this
ReadableImage
. - Throws:
IOException
- if the an I/O error occurs whilst copying.
-