我正在模拟一张纸,图像的平滑度基于毫米。 3D图像的格式是DICOM。例如,通常使用窗口 尺寸 平滑图像 X 并缩放 s < / em> ,正在完成如下:
f1 = fspecial('gaussian',[size,size],s);
Smooth1 = imfilter(X,f1);
有谁知道我如何进行平滑,其尺度是以毫米为单位?
我应该根据毫米而不是像素来改变窗口的大小吗?我怎样才能做到这一点?
答案 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);