为了账号安全,请及时绑定邮箱和手机立即绑定

我正在尝试构建一个跟踪方法,以 2dArray 的形式跟踪图片轮廓的坐标

我正在尝试构建一个跟踪方法,以 2dArray 的形式跟踪图片轮廓的坐标

缥缈止盈 2022-06-15 17:29:42
对于一个学校项目,我正在尝试建立一个跟踪方法。它应该基于 EdgeDetection 方法中的 Array 来跟踪形状轮廓的坐标。我确保轮廓只有一个像素厚。因为它是一个项目,所以我不能使用库中的任何花哨的技巧。到目前为止,我正在使用嵌套的 forloop 来查找形状的开头。然后我使用这样的形状:p9  p2  p3p8  p1  p4p7  p6  p5p1 是我在数组中的当前位置,然后我在 p2-p9 中搜索下一个位置。到目前为止的代码如下所示:private static String traceCoordinates(int o[][]){    String useless = null;     //int[][] n = new int[m[0].length][m.length];    //int[][] o = new int[n.length][n[0].length];   // n = transpose(m);    //o = thinning(n);    int hits = 0;    System.out.print("        ");    for (int a = 0; a < 1; a++)    {        for (int b = 0; b < o[0].length; b++)        {            String c = String.format("%3s", b);            System.out.print(c + " ");        }System.out.println("");    }    for (int y = 0; y < o.length; y++)    {        //String e = String.format("%3s", y).replace(" ", "0");        //System.out.print("row" + e + " ");        for (int x = 0 ; x < o[0].length ; x++)        {            if (o[y][x] == 0)            {                int xEnd = x;                int yEnd = y;                int a = y + 1;                int b = y - 1;                int c = x + 1;                int d = x - 1;                /*                Her findes værdien af de 8 nabopixler på baggrund af deres indbyrdes index.                */                int p2 = o[b][x];                int p3 = o[b][c];                int p4 = o[y][c];                int p5 = o[a][c];                int p6 = o[a][x];                int p7 = o[a][d];                int p8 = o[y][d];                int p9 = o[b][d];完成后,跟踪通过 StringBuilder 作为字符串返回,因此是无用的变量。我的问题是我的方法只能检测到一个方向的线。当该方向上没有更多像素时,它会跳出循环。
查看完整描述

1 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

对于轮廓跟踪,仅知道当前像素是不够的。您还需要到达它的方向。然后,从当前方向开始,围绕当前像素(顺时针或逆时针)旋转,开始寻找下一个像素。

因此,您的表应该有 8 x 256 个条目。或者,您可以依次尝试 8 个邻居(实际上 6 个就足够了)。不同的空间/时间折衷是可能的。

要启动遍历,您可以查找一个像素被一个空白包围的配置,然后是一个像素。停止标准有点棘手。为了正确起见,您应该在回到初始像素时停下来,准备继续朝同一方向前进。

//img1.sycdn.imooc.com//62a9a6c20001ea9104290358.jpg

查看完整回答
反对 回复 2022-06-15
  • 1 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信