将像素坐标和轨迹从一个点移到另一个点以在MATLAB中计算曲折度

问题描述 投票:0回答:1

我正在尝试使用给定的here函数在图像中查找血管的曲折度。

该函数的输入是信号/容器的x和y坐标。就我而言,如果我有这种类型的船只:

figimage

然后,如果我绘制容器的[x,y]坐标,则看起来像:

Fig1

然后,该功能可以从一个点到另一个点跟踪船只并找到曲折指数,请参见示例:

fig2

但是如果我的船只属于这种类型:

vesseltest

[x,y]坐标的绘图如下:

fig3

然后函数以之字形跟踪它

zigzagtrack

我的问题是:

  1. 如何从一端到另一端跟踪船只以计算曲折度=

  2. 如何以以下方式细化血管坐标,即通过信号像素定义(请参见绿色信号)?

    refine

代码:

i1=[91 92 93 94 95 96 97 88 89 90 98 99 100 101 102 103 87 104 105 106 107 84 85 86 108 83 109 110 
    111 112 113 114 115 116 117 117 117 117 117 117 117];
i2=[134 134 134 134 134 134 134 135 135 135 135 135 135 135 135 135 136 136 136 136 136 137 137 137 
    137 138 138 138 139 140 141 141 142 143 144 145 146 147 148 149 150];
 figure, plot(i2',i1','*r')
[VTI, sd, mean_dm, num_inflection_pts, num_cpts, l_arch, l_cord]=vessel_tortousity_index(i2',i1',1);
matlab image-processing signal-processing
1个回答
0
投票

如果您要处理的曲线大多为凸形(且宽度为1像素),则可以调用convhull计算点云的凸包,然后从中移除最长的绳索以获得弯曲部分。您可以计算出曲折度,请尝试此

tt=convhull(i2,i1);
plot(i2(tt),i1(tt))
© www.soinside.com 2019 - 2024. All rights reserved.