D3read.m 945 Bytes
clc;
clear all;

fid1 = fopen('nissl-rat.vol');
status1 = fseek(fid1, 0 , 0);
x_size1 = fread (fid1, 1, 'int32');
y_size1 = fread (fid1, 1, 'int32');
z_size1 = fread (fid1 , 1, 'int32');

Total_size = x_size1 * y_size1 * z_size1;
% fileInfo = dir('nissl_rat.vol');
% fileSizeInBytes = fileInfo.bytes;

x_size = double(x_size1);
y_size = double(y_size1);
z_size = double(z_size1);

position1 = ftell(fid1);
M = (fread(fid1,[x_size1 y_size1*z_size1], 'uint8'));
A = reshape(M, [x_size1 y_size1 z_size1]);
b = A(:,:,2);
Img = mat2gray(b);
figure;
imshow(Img);

position2 = ftell(fid1);
fclose(fid1);

Im = mat2gray(A(101:228, 101:228, 101:228));
%% 3D gradient
sx = [-1 0 1; -2 0 2; -1 0 1];
sy = [1 2 1; 0 0 0; -1 -2 -1];
szx = cat(3, sx, sx, sx);
szy = cat(3, sy, sy, sy);
szz = cat(3, ones(3,3), zeros(3,3), -ones(3,3));
Gx = convn(Im, szx, 'same');
Gy = convn(Im, szy, 'same');
Gz = convn(Im, szz, 'same');
grdmg = sqrt(Gx.^2 + Gy.^2 + Gz.^2);