matlab - 优化像素坐标并从一个点跟踪到另一个点以在 MATLAB 中计算曲折度
问题描述
我正在尝试使用此处给出的函数在图像中找到血管的曲折度。
该函数的输入是信号/容器的 x 和 y 坐标。就我而言,如果我有这种类型的容器:
然后,如果我绘制容器的 [x,y] 坐标,它看起来像:
然后该功能能够从一个点到另一个点跟踪船只并找到曲折指数,请参见示例:
但是如果我的船是这种类型的:
其 [x,y] 坐标图如下所示:
然后函数以之字形方式跟踪它
我的问题是:
代码:
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);
解决方案
如果您正在处理的曲线主要是凸形(并且 1 像素宽),您可以调用convhull
计算点云的凸包,然后移除最长的绳索以获得弯曲部分,您可以从中计算曲折,试试这个
tt=convhull(i2,i1);
plot(i2(tt),i1(tt))
推荐阅读
- heroku - 应用程序部署时,heroku 中出现“应用程序错误”
- vue.js - Vuetify V-File-input 与 append-outer-icon
- python - 在两个绘图之间共享 x 轴
- c# - 从另一个窗体调用 DataGridViewEventArgs e
- java - JpaRepository 出现问题 - SQLException:列名无效
- html - HTML 按钮控件
- javascript - 在客户端使用公钥验证 JWT 签名(RS256),无需服务器/node.js
- r - 读取事务(arules)的项目少于 R 数据框?
- android - CamaraX mp4 Video Recording 仅录制 3gp 视频?
- javascript - 将 Gatsby传递给 React Button 以创建完整的交互式图像网格