📄 ge_hdr_read.m
字号:
se_hdr = setfield(se_hdr, 'echo7_alpha', fread(fid,1,'float32')); %Echo 7 Alpha Value%
se_hdr = setfield(se_hdr, 'echo7_beta', fread(fid,1,'float32')); %Echo 7 Beta Value%
se_hdr = setfield(se_hdr, 'echo7_window', fread(fid,1,'uint16')); %Echo 7 Window Value%
se_hdr = setfield(se_hdr, 'echo7_level', fread(fid,1,'int16')); %Echo 7 Level Value%
se_hdr = setfield(se_hdr, 'echo8_alpha', fread(fid,1,'float32')); %Echo 8 Alpha Value%
se_hdr = setfield(se_hdr, 'echo8_beta', fread(fid,1,'float32')); %Echo 8 Beta Value%
se_hdr = setfield(se_hdr, 'echo8_window', fread(fid,1,'uint16')); %Echo 8 Window Value%
se_hdr = setfield(se_hdr, 'echo8_level', fread(fid,1,'int16')); %Echo 8 Level Value%
se_hdr = setfield(se_hdr, 'series_uid', fread(fid,32,'uchar')); %Series Entity Unique ID%
se_hdr = setfield(se_hdr, 'landmark_uid', fread(fid,32,'uchar')); %Landmark Unique ID%
se_hdr = setfield(se_hdr, 'equipmnt_uid', fread(fid,32,'uchar')); %Equipment Unique ID%
se_hdr = setfield(se_hdr, 'se_padding', fread(fid,588,'uchar')); %Spare Space%
return
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function im_hdr = ge_readHeaderImage(fid, byte_align)
% returns the image header as a structure.
% if byte_align = 1 then 32-bit alignment (SGI, LX2 format)
% if byte_align = 0 then 16-bit alignment (Sun, 5.X format)
% define the structure and read in the data
% to overcome the byte alignment problems
% break up the assignment into pieces using the setfield function
im_hdr = struct('im_suid', fread(fid,4,'uchar')); %Suite id for this image
im_hdr = setfield(im_hdr, 'im_uniq', fread(fid,1,'int16')); %The Make-Unique Flag
im_hdr = setfield(im_hdr, 'im_diskid', fread(fid,1,'uchar')); %Disk ID for this Image
fseek(fid, 1, 0);% 16-bit alignment
im_hdr = setfield(im_hdr, 'im_exno', fread(fid,1,'uint16')); %Exam number for this image
im_hdr = setfield(im_hdr, 'im_seno', fread(fid,1,'int16')); %Series Number for this image
im_hdr = setfield(im_hdr, 'im_no', fread(fid,1,'int16')); %Image Number
if byte_align; fseek(fid, 2, 0); end % 32-bit alignment
im_hdr = setfield(im_hdr, 'im_datetime', fread(fid,1,'int32')); %Allocation Image date/time stamp
im_hdr = setfield(im_hdr, 'im_actual_dt', fread(fid,1,'int32')); %Actual Image date/time stamp
im_hdr = setfield(im_hdr, 'sctime', fread(fid,1,'float32')); %Duration of scan
im_hdr = setfield(im_hdr, 'slthick', fread(fid,1,'float32')); %Slice Thickness (mm)
im_hdr = setfield(im_hdr, 'imatrix_X', fread(fid,1,'int16')); %Image matrix size - X
im_hdr = setfield(im_hdr, 'imatrix_Y', fread(fid,1,'int16')); %Image matrix size - Y
im_hdr = setfield(im_hdr, 'dfov', fread(fid,1,'float32')); %Display field of view - X (mm)
im_hdr = setfield(im_hdr, 'dfov_rect', fread(fid,1,'float32')); %Display field of view - Y (if different)
im_hdr = setfield(im_hdr, 'dim_X', fread(fid,1,'float32')); %Image dimension - X
im_hdr = setfield(im_hdr, 'dim_Y', fread(fid,1,'float32')); %Image dimension - Y
im_hdr = setfield(im_hdr, 'pixsize_X', fread(fid,1,'float32')); %Image pixel size - X
im_hdr = setfield(im_hdr, 'pixsize_Y', fread(fid,1,'float32')); %Image pixel size - Y
im_hdr = setfield(im_hdr, 'pdid', fread(fid,14,'uchar')); %Pixel Data ID
im_hdr = setfield(im_hdr, 'contrastIV', fread(fid,17,'uchar')); %IV Contrast Agent
im_hdr = setfield(im_hdr, 'contrastOral', fread(fid,17,'uchar')); %Oral Contrast Agent
im_hdr = setfield(im_hdr, 'contmode', fread(fid,1,'int16')); %Image Contrast Mode
im_hdr = setfield(im_hdr, 'serrx', fread(fid,1,'int16')); %Series from which prescribed
im_hdr = setfield(im_hdr, 'imgrx', fread(fid,1,'int16')); %Image from which prescribed
im_hdr = setfield(im_hdr, 'screenformat', fread(fid,1,'int16')); %Screen Format(8/16 bit)
im_hdr = setfield(im_hdr, 'plane', fread(fid,1,'int16')); %Plane Type
if byte_align; fseek(fid, 2, 0); end % 32-bit alignment
im_hdr = setfield(im_hdr, 'scanspacing', fread(fid,1,'float32')); %Spacing between scans (mm?)
im_hdr = setfield(im_hdr, 'im_compress', fread(fid,1,'int16')); %Image compression type for allocation
im_hdr = setfield(im_hdr, 'im_scouttype', fread(fid,1,'int16')); %Scout Type (AP or lateral)
im_hdr = setfield(im_hdr, 'loc_ras', fread(fid,1,'uchar')); %RAS letter of image location
fseek(fid, 1, 0); % 16-bit alignment
if byte_align; fseek(fid, 2, 0); end % 32-bit alignment
im_hdr = setfield(im_hdr, 'loc', fread(fid,1,'float32')); %Image location
im_hdr = setfield(im_hdr, 'ctr_R', fread(fid,1,'float32')); %Center R coord of plane image
im_hdr = setfield(im_hdr, 'ctr_A', fread(fid,1,'float32')); %Center A coord of plane image
im_hdr = setfield(im_hdr, 'ctr_S', fread(fid,1,'float32')); %Center S coord of plane image
im_hdr = setfield(im_hdr, 'norm_R', fread(fid,1,'float32')); %Normal R coord
im_hdr = setfield(im_hdr, 'norm_A', fread(fid,1,'float32')); %Normal A coord
im_hdr = setfield(im_hdr, 'norm_S', fread(fid,1,'float32')); %Normal S coord
im_hdr = setfield(im_hdr, 'tlhc_R', fread(fid,1,'float32')); %R Coord of Top Left Hand Corner
im_hdr = setfield(im_hdr, 'tlhc_A', fread(fid,1,'float32')); %A Coord of Top Left Hand Corner
im_hdr = setfield(im_hdr, 'tlhc_S', fread(fid,1,'float32')); %S Coord of Top Left Hand Corner
im_hdr = setfield(im_hdr, 'trhc_R', fread(fid,1,'float32')); %R Coord of Top Right Hand Corner
im_hdr = setfield(im_hdr, 'trhc_A', fread(fid,1,'float32')); %A Coord of Top Right Hand Corner
im_hdr = setfield(im_hdr, 'trhc_S', fread(fid,1,'float32')); %S Coord of Top Right Hand Corner
im_hdr = setfield(im_hdr, 'brhc_R', fread(fid,1,'float32')); %R Coord of Bottom Right Hand Corner
im_hdr = setfield(im_hdr, 'brhc_A', fread(fid,1,'float32')); %A Coord of Bottom Right Hand Corner
im_hdr = setfield(im_hdr, 'brhc_S', fread(fid,1,'float32')); %S Coord of Bottom Right Hand Corner
im_hdr = setfield(im_hdr, 'forimgrev', fread(fid,4,'uchar')); %Foreign Image Revision
im_hdr = setfield(im_hdr, 'tr', fread(fid,1,'int32')); %Pulse repetition time(usec)
im_hdr = setfield(im_hdr, 'ti', fread(fid,1,'int32')); %Pulse inversion time(usec)
im_hdr = setfield(im_hdr, 'te', fread(fid,1,'int32')); %Pulse echo time(usec)
im_hdr = setfield(im_hdr, 'te2', fread(fid,1,'int32')); %Second echo echo (usec)
im_hdr = setfield(im_hdr, 'numecho', fread(fid,1,'int16')); %Number of echoes
im_hdr = setfield(im_hdr, 'echonum', fread(fid,1,'int16')); %Echo Number
im_hdr = setfield(im_hdr, 'tbldlta', fread(fid,1,'float32')); %Table Delta
im_hdr = setfield(im_hdr, 'nex', fread(fid,1,'float32')); %Number of Excitations
im_hdr = setfield(im_hdr, 'contig', fread(fid,1,'int16')); %Continuous Slices Flag
im_hdr = setfield(im_hdr, 'hrtrate', fread(fid,1,'int16')); %Cardiac Heart Rate (bpm)
im_hdr = setfield(im_hdr, 'tdel', fread(fid,1,'int32')); %Delay time after trigger (msec)
im_hdr = setfield(im_hdr, 'saravg', fread(fid,1,'float32')); %Average SAR
im_hdr = setfield(im_hdr, 'sarpeak', fread(fid,1,'float32')); %Peak SAR
im_hdr = setfield(im_hdr, 'monsar', fread(fid,1,'int16')); %Monitor SAR flag
im_hdr = setfield(im_hdr, 'trgwindow', fread(fid,1,'int16')); %Trigger window (% of R-R interval)
im_hdr = setfield(im_hdr, 'reptime', fread(fid,1,'float32')); %Cardiac repetition time
im_hdr = setfield(im_hdr, 'imgpcyc', fread(fid,1,'int16')); %Images per cardiac cycle
im_hdr = setfield(im_hdr, 'xmtgain', fread(fid,1,'int16')); %Actual Transmit Gain (.1 db)
im_hdr = setfield(im_hdr, 'rcvgain1', fread(fid,1,'int16')); %Actual Receive Gain Analog (.1 db)
im_hdr = setfield(im_hdr, 'rcvgain2', fread(fid,1,'int16')); %Actual Receive Gain Digital (.1 db)
im_hdr = setfield(im_hdr, 'mr_flip', fread(fid,1,'int16')); %Flip Angle for GRASS scans (deg.)
if byte_align; fseek(fid, 2, 0); end % byte alignment
im_hdr = setfield(im_hdr, 'mindat', fread(fid,1,'int32')); %Minimum Delay after Trigger (uSec)
im_hdr = setfield(im_hdr, 'cphase', fread(fid,1,'int16')); %Total Cardiac Phase prescribed
im_hdr = setfield(im_hdr, 'swappf', fread(fid,1,'int16')); %Swap Phase/Frequency Axis
im_hdr = setfield(im_hdr, 'pauseint', fread(fid,1,'int16')); %Pause Interval (slices)
if byte_align; fseek(fid, 2, 0); end % 32-bit alignment
im_hdr = setfield(im_hdr, 'pausetime', fread(fid,1,'float32')); %Pause Time
im_hdr = setfield(im_hdr, 'obplane', fread(fid,1,'int32')); %Oblique Plane
im_hdr = setfield(im_hdr, 'slocfov', fread(fid,1,'int32')); %Slice Offsets on Freq axis
im_hdr = setfield(im_hdr, 'xmtfreq', fread(fid,1,'int32')); %Center Frequency (0.1 Hz)
im_hdr = setfield(im_hdr, 'autoxmtfreq', fread(fid,1,'int32')); %Auto Center Frequency (0.1 Hz)
im_hdr = setfield(im_hdr, 'autoxmtgain', fread(fid,1,'int16')); %Auto Transmit Gain (0.1 dB)
im_hdr = setfield(im_hdr, 'prescan_r1', fread(fid,1,'int16')); %PreScan R1 - Analog
im_hdr = setfield(im_hdr, 'prescan_r2', fread(fid,1,'int16')); %PreScan R2 - Digital
if byte_align; fseek(fid, 2, 0); end % 32-bit alignment
im_hdr = setfield(im_hdr, 'user_bitmap', fread(fid,1,'int32')); %Bitmap defining user CVs
im_hdr = setfield(im_hdr, 'cenfreq', fread(fid,1,'int16')); %Center Frequency Method
im_hdr = setfield(im_hdr, 'imode', fread(fid,1,'int16')); %Imaging Mode
im_hdr = setfield(im_hdr, 'iopt', fread(fid,1,'int32')); %Imaging Options
im_hdr = setfield(im_hdr, 'pseq', fread(fid,1,'int16')); %Pulse Sequence
im_hdr = setfield(im_hdr, 'pseqmode', fread(fid,1,'int16')); %Pulse Sequence Mode
im_hdr = setfield(im_hdr, 'psdname', fread(fid,33,'uchar')); %Pulse Sequence Name
fseek(fid,1,0); % 16-bit alignment
if byte_align; fseek(fid, 2, 0); end % byte alignment
im_hdr = setfield(im_hdr, 'psd_datetime', fread(fid,1,'int32')); %PSD Creation Date and Time
im_hdr = setfield(im_hdr, 'psd_iname', fread(fid,13,'uchar')); %PSD name from inside PSD
fseek(fid, 1, 0); % 16-bit alignment
im_hdr = setfield(im_hdr, 'ctyp', fread(fid,1,'int16')); %Coil Type
im_hdr = setfield(im_hdr, 'cname', fread(fid,17,'uchar')); %Coil Name
fseek(fid, 1, 0); % 16-bit alignment
im_hdr = setfield(im_hdr, 'surfctyp', fread(fid,1,'int16')); %Surface Coil Type
im_hdr = setfield(im_hdr, 'surfcext', fread(fid,1,'int16')); %Extremity Coil Flag
if byte_align; fseek(fid, 2, 0); end % 32-bit alignment
im_hdr = setfield(im_hdr, 'rawrunnum', fread(fid,1,'int32')); %RawData Run Number
im_hdr = setfield(im_hdr, 'cal_fldstr', fread(fid,1,'uint32')); %Calibrated Field Strength (x10 uGauss)
im_hdr = setfield(im_hdr, 'supp_tech', fread(fid,1,'int16')); %SAT fat/water/none
if byte_align; fseek(fid, 2, 0); end % 32-bit alignment
im_hdr = setfield(im_hdr, 'vbw', fread(fid,1,'float32')); %Variable Bandwidth (Hz)
im_hdr = setfield(im_hdr, 'slquant', fread(fid,1,'int16')); %Number of slices in this scan group
im_hdr = setfield(im_hdr, 'gpre', fread(fid,1,'int16')); %Graphically prescribed
im_hdr = setfield(im_hdr, 'intr_del', fread(fid,1,'int32')); %Interimage/interloc delay (uSec)
im_hdr = setfield(im_hdr, 'user0', fread(fid,1,'float32')); %User Variable 0
im_hdr = setfield(im_hdr, 'user1', fread(fid,1,'float32')); %User Variable 1
im_hdr = setfield(im_hdr, 'user2', fread(fid,1,'float32')); %User Variable 2
im_hdr = setfield(im_hdr, 'user3', fread(fid,1,'float32')); %User Variable 3
im_hdr = setfield(im_hdr, 'user4', fread(fid,1,'float32')); %User Variable 4
im_hdr = setfield(im_hdr, 'user5', fread(fid,1,'float32')); %User Variable 5
im_hdr = setfield(im_hdr, 'user6', fread(fid,1,'float32')); %User Variable 6
im_hdr = setfield(im_hdr, 'user7', fread(fid,1,'float32')); %User Variable 7
im_hdr = setfield(im_hdr, 'user8', fread(fid,1,'float32')); %User Variable 8
im_hdr = setfield(im_hdr, 'user9', fread(fid,1,'float32')); %User Variable 9
im_hdr = setfield(im_hdr, 'user10', fread(fid,1,'float32')); %User Variable 10
im_hdr = setfield(im_hdr, 'user11', fread(fid,1,'float32')); %User Variable 11
im_hdr = setfield(im_hdr, 'user12', fread(fid,1,'float32')); %User Variable 12
im_hdr = setfield(im_hdr, 'user13', fread(fid,1,'float32')); %User Variable 13
im_hdr = setfield(im_hdr, 'user14', fread(fid,1,'float32')); %User Variable 14
im_hdr = setfield(im_hdr, 'user15', fread(fid,1,'float32')); %User Variable 15
im_hdr = setfield(im_hdr, 'user16', fread(fid,1,'float32')); %User Variable 16
im_hdr = setfield(im_hdr, 'user17', fread(fid,1,'float32')); %User Variable 17
im_hdr = setfield(im_hdr, 'user18', fread(fid,1,'float32')); %User Variable 18
im_hdr = setfield(im_hdr, 'user19', fread(fid,1,'float32')); %User Variable 19
im_hdr = setfield(im_hdr, 'user20', fread(fid,1,'float32')); %User Variable 20
im_hdr = setfield(im_hdr, 'user21', fread(fid,1,'float32')); %User Variable 21
im_hdr = setfield(im_hdr, 'user22', fread(fid,1,'float32')); %User Variable 22
im_hdr = setfield(im_hdr, 'user23', fread(fid,1,'float32')); %Projection Angle
im_hdr = setfield(im_hdr, 'user24', fread(fid,1,'float32')); %Concat Sat Type Flag
im_hdr = setfield(im_hdr, 'im_alloc_key', fread(fid,13,'uchar'));
fseek(fid, 1, 0); % 16-bit alignment
if byte_align; fseek(fid, 2, 0); end % 32-bit alignment
im_hdr = setfield(im_hdr, 'im_lastmod', fread(fid,1,'int32')); %Date/Time of Last Change
im_hdr = setfield(im_hdr, 'im_verscre', fread(fid,2,'uchar')); %Genesis Version - Created
im_hdr = setfield(im_hdr, 'im_verscur', fread(fid,2,'uchar')); %Genesis Version - Now
im_hdr = setfield(im_hdr, 'im_pds_a', fread(fid,1,'int32')); %PixelData size - as stored
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -