首页 > 解决方案 > 优化像素坐标并从一个点跟踪到另一个点以在 MATLAB 中计算曲折度

问题描述

我正在尝试使用此处给出的函数在图像中找到血管的曲折度。

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

无花果

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

图。1

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

图2

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

容器测试

其 [x,y] 坐标图如下所示:

图3

然后函数以之字形方式跟踪它

曲折轨道

我的问题是:

  1. 如何使船只从一端跟踪到其他端点以计算曲折=

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

    提炼

代码:

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);

标签: matlabimage-processingsignal-processing

解决方案


如果您正在处理的曲线主要是凸形(并且 1 像素宽),您可以调用convhull计算点云的凸包,然后移除最长的绳索以获得弯曲部分,您可以从中计算曲折,试试这个

tt=convhull(i2,i1);
plot(i2(tt),i1(tt))

推荐阅读