Applying Gaussian 3D filter to 32 bit float 3D Micro-CT image
4 views (last 30 days)
Show older comments
Hi All,
I have a Micro-CT data file to process it through Matlab as shown in below. My array is a 3D array and it is 32 bit float. but gaussian filters which are introduced in mathworks are not supported to float data type
fid = fopen('E:\RE\re_C_7mm_6um_1d42s_01\re_C_7mm_6um_1d42s.vol');
voxels = fread(fid, '*float32'); %read as 32 bit float. I'm assuming they are 32 bit float(CT data)
fclose(fid);
voxels = reshape(voxels,[1920,1920,1536]);
d=imbinarize(voxels,95); % Thresholding the volume
d1=imgaussfilt3(d) % This lines gives me an error that it supports only for uint,int, single or double.check the error

What I should do to filter my 3D array using the gausfilt3 command? Appreciate your valuable advices. I want to remove the P(see the attached image)with or without gausfilt3.Appreciate your valuable adivces!
Error is shown below. A is the file for the filtering. If you check the gaussfilt3 command in mathworks A is defined. it is not my own name.
Error using imgaussfilt3
Expected A to be one of these types:
uint8, uint16, uint32, int8, int16, int32, single, double
Instead its type was logical.
Error in imgaussfilt3>parseInputs (line 285)
validateattributes(A, supportedClasses, supportedImageAttributes, mfilename, 'A');
Error in imgaussfilt3 (line 116)
[A, options] = parseInputs(args{:});
Error in volreading (line 55)
d1=imgaussfilt3(d)
0 Comments
Answers (1)
Image Analyst
on 11 Oct 2020
Try imfilter() with your own custom kernel that is a Gaussian shape.
11 Comments
See Also
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!