如何基于毫米来平滑3D图像?

时间:2016-09-21 14:52:45

标签: matlab gaussian smoothing

我正在模拟一张纸,图像的平滑度基于毫米。 3D图像的格式是DICOM。例如,通常使用窗口 尺寸 平滑图像 X 并缩放 s < / em> ,正在完成如下:

f1 = fspecial('gaussian',[size,size],s);
Smooth1 = imfilter(X,f1);

有谁知道我如何进行平滑,其尺度是以毫米为单位?

我应该根据毫米而不是像素来改变窗口的大小吗?我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

如果希望以毫米为单位定义高斯滤波器的形状,可以使用DICOM元数据中的PixelSpacing属性将毫米转换为像素。 PixelSpacing的单位为mm/pixel

info = dicominfo(filename);
X = double(dicomread(info));

scale_mm = 3;                                           % Signma of the filter in mm

scale_px = scale_mm / double(info.PixelSpacing(1));     % Converted to pixels

% Create a Gaussian filter using this sigma value
f1 = fspecial('gaussian', [height, width], scale_px);

% Apply the smoothing
smooth1 = imfilter(X, f1);