感兴趣的区域定义算法

2视图(30天)
戈尔曼Brittney
戈尔曼Brittney 2021年4月27日
评论道: 图像分析 2021年6月26日
我试图建立一个算法,可以探测粒子的边缘。从一个点和函数附加itterates径向outword检测如果每个位置localmaximum或超过一个阈值。如附件所示图像这应该允许独立的代码识别数据矩阵中的每一个低点的边缘。
的问题我和我现在的代码,因为它迭代和径向向外是非常耗时的。谁能建议更好的东西吗?
我还附加了一些示例数据:
函数[S_boarderx, S_boardery Board_val] = shadowedge (im, shadowx,影子,R, dirmax,用力推,PM)
党卫军=我;
[dimx, dimy] =大小(党卫军,1,2);
xx = shadowx;
yy =阴影;
shadow_loc = sub2ind ([dimx dimy], xx, yy);
shadow_Val = SS (shadow_loc);
thres_val = shadow_Val + shadow_Val *刺;
t = 1: dirmax
j = 1: R
θ=(2 *π* t) / dirmax;
Sx = xx +圆(j * cos(θ));
Sy = yy +圆(j * sin(θ));
Sx (Sx < = 1) = 2;
Sy (Sy < = 1) = 2;
Sx (Sx > = dimx-1) = dimx-1;
Sy (Sy > = dimy-1) = dimy-1;
val = SS (sub2ind ([dimx dimy], Sx, Sy));
如果val > = thres_val
:S_boarderx (t) = Sx;
:S_boardery (t) = Sy;
打破
elseifsum (sub2ind ([dimx dimy], Sx, Sy) = =找到(islocalmax(党卫军,“MinProminence”,PM)))
| |总和(sub2ind ([dimx dimy], Sx + 1, Sy + 1) = =找到(islocalmax(党卫军,“MinProminence”,PM)))
| |总和(sub2ind ([dimx dimy], Sx + 1, Sy) = =找到(islocalmax(党卫军,“MinProminence”,PM)))
| |总和(sub2ind ([dimx dimy], Sx, Sy + 1) = =找到(islocalmax(党卫军,“MinProminence”,PM)))
| |总和(sub2ind ([dimx dimy], Sx-1, Sy-1) = =找到(islocalmax(党卫军,“MinProminence”,PM)))
| |总和(sub2ind ([dimx dimy], Sx-1, Sy) = =找到(islocalmax(党卫军,“MinProminence”,PM)))
| |总和(sub2ind ([dimx dimy], Sx, Sy-1) = =找到(islocalmax(党卫军,“MinProminence”,PM)))
:S_boarderx (t) = Sx;
:S_boardery (t) = Sy;
打破
其他的
:S_boarderx (t) = Sx;
:S_boardery (t) = Sy;
结束
结束
结束
Board_loc = sub2ind ([dimx dimy], S_boarderx (:), S_boardery (:));
Board_val = SS (Board_loc);
10评论
图像分析
图像分析 2021年6月26日
戈尔曼@Brittney ,对不起我没有看到你的回复直到现在。你还在这段代码有问题吗?

登录置评。

答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!