ReadPicData

Synopsis

Reads a Bio-Rad PIC file and outputs the dimensions and data array.


  group ReadPicData {
    string filename<NEportLevels={2,0}>;
    file FILE {
      name => <-.filename;
    };
    ReadPicDims ReadPicDims {
      filename=> <-.filename;
    };
    int dims<NEportLevels={0,2}>[3] => ReadPicDims.dims;
    byte data<NEportLevels={0,2}>[prod(dims)] => cache(file_obj(.FILE,76,1,,1));
  };

Description

The ReadPicData module reads a Bio-Rad PIC file and outputs the dimensions of the data and an array containing the image data. These outputs can then be combined using a uniform_scalar_field module to create field data that can then be visualized using any of the standard modules. The dimensions are output as an array of integers and the data is output as an array of bytes. The module will only handle 8-bit images. 16-bit and 24-bit images are not handled correctly. Any notes appended to PIC files are also ignored.

Bio-Rad PIC files contain 3D confocal microscope images, i.e. 3D scalar uniform fields. However 3D confocal microscope images are usually anisotropic i.e. the x-y scale is different from the z scale. In this case the scale module can be used to alter the scaling of the resultant field data. For more information please see the NOTE file.

Input

&filename

The name of the file that should be read from. This parameter is of type string. The ReadPicData module does not check to ensure that the supplied file is a valid Bio-Rad PIC file. If the file is not valid then errors could occur.

Low-Level Module

ReadPicDims

An internal module, written in C, that reads the image dimensions from the input file. The read dimensions are then used to determine the amount of image data that should be read from the input file and to generate the uniform field. The dimensions are 16 bit long values. These values are read into a variable of type short. If the length of the short type on your system is not 16 bits long then the module may need alteration. The ReadPicDims module also performs the necessary byte swapping so that the module can be used on both big and little endian systems.

Outputs

dims[3]

This array contains the dimensions of the Bio-Rad PIC image. The array is of type int. The dimensions can be used directly by field mapping modules to help generate AVS field data. The dimensions are read by the ReadPicDims module and are cast from the original short values to the int values that AVS/Express uses.

data[]

This array contains the data read from the Bio-Rad PIC file. The array is of type byte. The length of the array is calculated from the dimensions read by the ReadPicDims module. The data is actually read by the standard file I/O modules present in AVS/Express.

Utility Macros

The low-level ReadPicData module is used in the User Macro readBRPic. This module be used directly in applications. The readBRPic macro also uses the ReadBRPicUI UI macro. The ReadPicData module uses the ReadPicDims module.

Example

An example application ReadBRPicEg is provided that reads a Bio-Rad PIC file and produces a maximum intensity projection. A sample Bio-Rad PIC file flea3.pic is provided with the distribution of this module.

Files

iac_proj/rd_brpic/rdbrmods.v contains the ReadPicData and ReadPicDims module V definitions.

Other Notes

The low-level ReadBRPicMods library containing the module ReadPicDims does not specify a process. By default the express process will be used.

Authors

Chris Pudney
Biomedical Confocal Microscopy Research Centre
Department of Pharmacology
The University of Western Australia
Nedlands, W.A. 6907
AUSTRALIA
E-mail: cpudney@alphapharm.pharm.uwa.edu.au
Phone, Fax: (+61 8) 9346 4571, (+618) 9346 3469

Modifications

Andrew Dodd, Joanna Leng
Manchester Visualization Centre

Contact

International AVS Centre
Manchester Visualization Centre
Manchester Computing
University of Manchester
Oxford Road
Manchester
United Kingdom
M13 9PL

See Also

readBRPic, ReadPicDims, ReadBRPicEg, read_BioRad_PIC (AVS5 IAC module)