TA的每日心情 | 奋斗 2025-2-22 10:28 |
---|
签到天数: 227 天 [LV.7]常住居民III
小白
- 积分
- 0
|
得到的MTF曲线不正确,想问问大家是哪里出了问题
正常的MTF曲线
我得到的MTF曲线如下图
首先我们知道线扩散函数进行傅里叶变换可以求得MTF
我的思路是取线扩散函数某一行的灰度值然后对他进行傅里叶变换从而得到MTF曲线
下面是我的代码
%读取图像其中一行灰度值
xiafeng3=imread('xiafeng3.png');
grayImage = rgb2gray(xiafeng3);%将图像转为灰度值
I = grayImage(50, ;%取第50行的灰度值
res= double(I); % 将数据转换为double类型I
[rows,cols] = size(res);% 丈量数据矩阵尺寸
%创建横坐标
step = 1000 / 2457.6;%像元尺寸为2.4um,进行坐标转换为lp/mm,即1/(cols*2.4um)
halfpoints = cols/2;%创建一个图像一半长度的数列
end_value = (halfpoints - 1) * step; % 因为从 0 开始,所以数组长度减去 1
array = 0:step:end_value;
%傅里叶变换得到MTF曲线
MTF = abs((fft(I)));
MTF = MTF / max(MTF);% 标准化 MTF
MTF = MTF(1:numel(MTF)/2);%取MTF的前一半曲线
figure;
plot( I, 'b.'); % 绘制数据点
% 对频谱数据进行插值
x_interp = linspace(min(array), max(array), 1000); % 生成插值用的更密集的 x 值
MTF_interp = interp1(array, MTF, x_interp, 'spline'); % 使用样条插值
% 绘制插值曲线
figure;
plot(array, MTF, 'b.'); % 绘制原始数据点
hold on;
plot(x_interp, MTF_interp, 'r-', 'LineWidth', 2); % 绘制插值曲线
legend('原始数据', '插值曲线');
xlabel('频率');
ylabel('幅度');
title('傅里叶频谱插值');
得到的线扩散函数如下图
对数据进行傅里叶变换后取频域的前半部分是MTF曲线吗
就是说是否我将下面的图像取前一半就是MTF曲线
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|