我有一个 .png 格式的大脑核磁共振图像。我读取图像并提取 K-Space 并将一些 K-Space 设置为 0
img_fft = fftshift(fft2(img));
sizes = size(img_fft);
row_half = sizes(1)/2;
flag = true;
for r = row_half:sizes(1)
for c = 1:sizes(2)
img_fft(r,c) = 0+1i*0;
end
end
在此之后,我使用将图像更改回图像空间
img_back = ifft2(ifftshift(img_fft));
在此之后,我将图像转换为 uint8,因为那是原始图像格式。当我尝试使用 imshow() 绘制图像时,与使用 imwrite 编写图像时相比,我得到了不同的输出。另外,如果我在 imwrite 中使用 abs(img_back) 我会收到错误消息。
使用 abs 时出错:不支持复杂整数。
我的绘图代码如下:
img_back = ifft2(ifftshift(img_fft));
img_back = cast(img_back,'uint8');
subplot(1,3,1), imshow(img)
subplot(1,3,2), imshow(img_back)
subplot(1,3,3), imshow(abs(img_fft),[])
imwrite(abs(img_back),'back_img.png','png')
有人可以告诉我我在这里做错了什么吗?