%% 计算条纹方向
input_image = wrappedPhase;
[rows, cols] = size(input_image);
% 定义邻域半径
radius = 5;
% 初始化条纹方向图
direction_image = zeros(rows, cols);
for i = radius+1:rows-radius
for j = radius+1:cols-radius
% 获取局部邻域
local_region = input_image(i-radius:i+radius, j-radius:j+radius);
[X, Y] = meshgrid(-radius:radius, -radius:radius);
% 平面拟合
Z = local_region(:);
X = X(:);
Y = Y(:);
A = [ones(size(X)), X, Y];
coeff = A \ Z;
b = coeff(2);
c = coeff(3);
% 计算条纹方向
theta = atan2(c, b);
theta_deg = rad2deg(theta);
% 映射到灰度值
direction_image(i, j) = (theta_deg + 180) / 360 * 255;
end
end
% 显示条纹方向图
figure;
imshow(uint8(direction_image));
title('Stripe Direction Image');