% 读取图像
bw=im2bw( imread('test.jpg'),0.4)
% 反转图像,使曲线为黑色,背景为白色(可选,视具体图像而定)
% bw = ~bw;
% 获取图像尺寸
[height, width] = size(bw);
% 初始化坐标数组
x_coords = [];
y_coords = [];
% 对每一列,找到最高的白色像素点的 Y 坐标
for x = 1:width
column = bw(:, x);
y = find(column, 1, 'first'); % 找到第一个白色像素的行索引
if ~isempty(y)
x_coords(end+1) = x;
y_coords(end+1) = y;
end
end
% 绘制提取的曲线
figure;
imshow(img);
hold on;
plot(x_coords, y_coords, 'r-', 'LineWidth', 2);
title('提取的顶部曲线');
hold off;
% 保存坐标到变量或文件
% 例如,将坐标保存到变量中
top_curve_coords = [x_coords', y_coords'];
% 或者保存到 CSV 文件
% csvwrite('top_curve_coords.csv', top_curve_coords);
% 显示坐标(可选)
disp('顶部曲线的 X 坐标:');
disp(x_coords');
disp('顶部曲线的 Y 坐标:');
disp(y_coords');