필터 지우기
필터 지우기

Hamming filter for MRI K-Space data

조회 수: 10 (최근 30일)
Roshtha
Roshtha 2018년 11월 5일
Hello all, I have a 320 x 272 x 1 x 5 (Readout x PhaseEncode1 x PhaseEncode2 x Channels) k-space data from a Siemens MR machine. I apply hamming filter on raw data for ringing artefact removal. After applying the filter, the image reconstructed from filtered raw data appears blurred and loses resolution. The code and images reconstructed with and without hamming filter applied is shown below: My questions are: 1. Is a ringing filter always required for pre-processing MR K-Space data? 2. Whether the filter to be applied in both Readout and Phase Encoding dimensions?
kspacefilename = strcat(pwd,'\hamfilter_data_1.mat');
kspacefile = load(fullfile(kspacefilename));
kspacedata = kspacefile.kspace_data;
%Reconstruction and channel combine
img_data = ifftshift(fft(kspacedata,[],1),1);
img_data = ifftshift(fft(img_data,[],2),2);
img_data = sqrt(sum(abs(img_data).^2,4));
figure(1); imshow(abs(img_data),[]);
% Ringing artefact removal
Ndim = ndims(kspacedata);
prec = class( kspacedata );
filter = cast( 1, prec );
sz = size( kspacedata );
for d = 1:Ndim-1 % Excluding channel dimension
reshRule = ones(1,Ndim); % how the filter will be reshaped
filt_1Dime = hamming( sz(d), 'periodic');
reshRule(d) = sz(d);
filt_1Dime = reshape( filt_1Dime, reshRule );
filter = bsxfun( @times, filter, filt_1Dime ); % Build up mutli dimensional fiter
end
kspFiltered = bsxfun( @times, filter, kspacedata); % Apply fiter on kspace data
%Reconstruction and channel combine - After ringing artefact removal
img_data = ifftshift(fft(kspFiltered,[],1),1);
img_data = ifftshift(fft(img_data,[],2),2);
img_data = sqrt(sum(abs(img_data).^2,4));
figure(2); imshow(abs(img_data),[]);
Thanks.

답변 (0개)

카테고리

Help CenterFile Exchange에서 MRI에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by