gpt4 book ai didi

matlab - 提取图像线(矩阵)

转载 作者:行者123 更新时间:2023-12-02 22:14:15 25 4
gpt4 key购买 nike

我在 matlab 中加载图像并将它们作为双矩阵处理。

现在我想提取从图像的一个点到另一个点的直线上的数据值。然而,这条线不等于一列或一行(那很容易)。

我如何使用 matlab 做到这一点?

最佳答案

一行服从 y=a*x+b 行的 eq。这里 x 和 y 是图像的坐标。所以如果你想要一条由两点 (x1,y1) -> (x2,y2) 定义的线,斜率 a(y2-y1)/(x2-x1)b=y1-a*x1。所以接下来,选择矩阵中的点,如下所示:

创建数据和端点:

m=peaks(50);
x1=5 ; x2=42;
y1=21; y2=29;

计算ew of line parameters:

a=(y2-y1)/(x2-x1);
b=y1-a*x1;

定义行:

x=x1:x2;
y=round(a*x+b);

使用线性索引选择合适的矩阵元素:

ind=sub2ind(size(m),y,x)

情节:

subplot(2,1,1)
imagesc(m); hold on
colormap(bone)
line([x1 x2],[y1 y2],'Color',[1 0 0]);

subplot(2,1,2)
plot(m(ind))

enter image description here

关于matlab - 提取图像线(矩阵),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14747062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com