如何基于毫米对 3D 图像进行平滑处理?
How to do smoothing of 3D images based on millimeter?
我正在模拟一篇论文,图像平滑的尺度是基于毫米的。 3D 图像的格式是 DICOM。例如,通常图像 X 与 window size 的平滑]和缩放s,正在做如下:
f1 = fspecial('gaussian',[size,size],s);
Smooth1 = imfilter(X,f1);
有谁知道我该怎么做以毫米为单位的平滑度?
我应该根据毫米而不是像素更改 window 的大小吗?我怎样才能做到这一点?
如果要以毫米为单位定义高斯滤波器的形状,可以使用 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);
我正在模拟一篇论文,图像平滑的尺度是基于毫米的。 3D 图像的格式是 DICOM。例如,通常图像 X 与 window size 的平滑]和缩放s,正在做如下:
f1 = fspecial('gaussian',[size,size],s);
Smooth1 = imfilter(X,f1);
有谁知道我该怎么做以毫米为单位的平滑度?
我应该根据毫米而不是像素更改 window 的大小吗?我怎样才能做到这一点?
如果要以毫米为单位定义高斯滤波器的形状,可以使用 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);