当前位置: 首页>>代码示例>>Java>>正文


Java MathUtils.distance方法代码示例

本文整理汇总了Java中com.google.zxing.common.detector.MathUtils.distance方法的典型用法代码示例。如果您正苦于以下问题:Java MathUtils.distance方法的具体用法?Java MathUtils.distance怎么用?Java MathUtils.distance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.google.zxing.common.detector.MathUtils的用法示例。


在下文中一共展示了MathUtils.distance方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: sizeOfBlackWhiteBlackRun

import com.google.zxing.common.detector.MathUtils; //导入方法依赖的package包/类
/**
 * <p>This method traces a line from a point in the image, in the direction towards another point.
 * It begins in a black region, and keeps going until it finds white, then black, then white again.
 * It reports the distance from the start to this point.</p>
 *
 * <p>This is used when figuring out how wide a finder pattern is, when the finder pattern
 * may be skewed or rotated.</p>
 */
private float sizeOfBlackWhiteBlackRun(int fromX, int fromY, int toX, int toY) {
  // Mild variant of Bresenham's algorithm;
  // see http://en.wikipedia.org/wiki/Bresenham's_line_algorithm
  boolean steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);
  if (steep) {
    int temp = fromX;
    fromX = fromY;
    fromY = temp;
    temp = toX;
    toX = toY;
    toY = temp;
  }

  int dx = Math.abs(toX - fromX);
  int dy = Math.abs(toY - fromY);
  int error = -dx / 2;
  int xstep = fromX < toX ? 1 : -1;
  int ystep = fromY < toY ? 1 : -1;

  // In black pixels, looking for white, first or second time.
  int state = 0;
  // Loop up until x == toX, but not beyond
  int xLimit = toX + xstep;
  for (int x = fromX, y = fromY; x != xLimit; x += xstep) {
    int realX = steep ? y : x;
    int realY = steep ? x : y;

    // Does current pixel mean we have moved white to black or vice versa?
    // Scanning black in state 0,2 and white in state 1, so if we find the wrong
    // color, advance to next state or end if we are in state 2 already
    if ((state == 1) == image.get(realX, realY)) {
      if (state == 2) {
        return MathUtils.distance(x, y, fromX, fromY);
      }
      state++;
    }

    error += dy;
    if (error > 0) {
      if (y == toY) {
        break;
      }
      y += ystep;
      error -= dx;
    }
  }
  // Found black-white-black; give the benefit of the doubt that the next pixel outside the image
  // is "white" so this last point at (toX+xStep,toY) is the right ending. This is really a
  // small approximation; (toX+xStep,toY+yStep) might be really correct. Ignore this.
  if (state == 2) {
    return MathUtils.distance(toX + xstep, toY, fromX, fromY);
  }
  // else we didn't find even black-white-black; no estimate is really possible
  return Float.NaN;
}
 
开发者ID:amap-demo,项目名称:weex-3d-map,代码行数:64,代码来源:Detector.java

示例2: distance

import com.google.zxing.common.detector.MathUtils; //导入方法依赖的package包/类
private static float distance(Point a, Point b) {
  return MathUtils.distance(a.getX(), a.getY(), b.getX(), b.getY());
}
 
开发者ID:amap-demo,项目名称:weex-3d-map,代码行数:4,代码来源:Detector.java

示例3: sizeOfBlackWhiteBlackRun

import com.google.zxing.common.detector.MathUtils; //导入方法依赖的package包/类
private float sizeOfBlackWhiteBlackRun(int fromX, int fromY, int toX, int toY) {
    boolean steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);
    if (steep) {
        int temp = fromX;
        fromX = fromY;
        fromY = temp;
        temp = toX;
        toX = toY;
        toY = temp;
    }
    int dx = Math.abs(toX - fromX);
    int dy = Math.abs(toY - fromY);
    int error = (-dx) / 2;
    int xstep = fromX < toX ? 1 : -1;
    int ystep = fromY < toY ? 1 : -1;
    int state = 0;
    int xLimit = toX + xstep;
    int y = fromY;
    for (int x = fromX; x != xLimit; x += xstep) {
        int realX;
        int realY;
        if (steep) {
            realX = y;
        } else {
            realX = x;
        }
        if (steep) {
            realY = x;
        } else {
            realY = y;
        }
        if ((state == 1) == this.image.get(realX, realY)) {
            if (state == 2) {
                return MathUtils.distance(x, y, fromX, fromY);
            }
            state++;
        }
        error += dy;
        if (error > 0) {
            if (y == toY) {
                break;
            }
            y += ystep;
            error -= dx;
        }
    }
    if (state == 2) {
        return MathUtils.distance(toX + xstep, toY, fromX, fromY);
    }
    return Float.NaN;
}
 
开发者ID:JackChan1999,项目名称:boohee_v5.6,代码行数:52,代码来源:Detector.java

示例4: distance

import com.google.zxing.common.detector.MathUtils; //导入方法依赖的package包/类
private static float distance(Point a, Point b) {
    return MathUtils.distance(a.getX(), a.getY(), b.getX(), b.getY());
}
 
开发者ID:JackChan1999,项目名称:boohee_v5.6,代码行数:4,代码来源:Detector.java

示例5: distance

import com.google.zxing.common.detector.MathUtils; //导入方法依赖的package包/类
public static float distance(ResultPoint pattern1, ResultPoint pattern2) {
    return MathUtils.distance(pattern1.x, pattern1.y, pattern2.x, pattern2.y);
}
 
开发者ID:JackChan1999,项目名称:boohee_v5.6,代码行数:4,代码来源:ResultPoint.java

示例6: distance

import com.google.zxing.common.detector.MathUtils; //导入方法依赖的package包/类
private static float distance(ResultPoint a, ResultPoint b) {
  return MathUtils.distance(a.getX(), a.getY(), b.getX(), b.getY());
}
 
开发者ID:HJ-StevenSun,项目名称:Weex-TestDemo,代码行数:4,代码来源:Detector.java

示例7: sizeOfBlackWhiteBlackRun

import com.google.zxing.common.detector.MathUtils; //导入方法依赖的package包/类
/**
 * <p>This method traces a line from a point in the image, in the direction towards another point.
 * It begins in a black region, and keeps going until it finds white, then black, then white again.
 * It reports the distance from the start to this point.</p>
 *
 * <p>This is used when figuring out how wide a finder pattern is, when the finder pattern
 * may be skewed or rotated.</p>
 */
private float sizeOfBlackWhiteBlackRun(int fromX, int fromY, int toX, int toY) {
  // Mild variant of Bresenham's algorithm;
  // see http://en.wikipedia.org/wiki/Bresenham's_line_algorithm
  boolean steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);
  if (steep) {
    int temp = fromX;
    fromX = fromY;
    fromY = temp;
    temp = toX;
    toX = toY;
    toY = temp;
  }

  int dx = Math.abs(toX - fromX);
  int dy = Math.abs(toY - fromY);
  int error = -dx >> 1;
  int xstep = fromX < toX ? 1 : -1;
  int ystep = fromY < toY ? 1 : -1;

  // In black pixels, looking for white, first or second time.
  int state = 0;
  // Loop up until x == toX, but not beyond
  int xLimit = toX + xstep;
  for (int x = fromX, y = fromY; x != xLimit; x += xstep) {
    int realX = steep ? y : x;
    int realY = steep ? x : y;

    // Does current pixel mean we have moved white to black or vice versa?
    // Scanning black in state 0,2 and white in state 1, so if we find the wrong
    // color, advance to next state or end if we are in state 2 already
    if ((state == 1) == image.get(realX, realY)) {
      if (state == 2) {
        return MathUtils.distance(x, y, fromX, fromY);
      }
      state++;
    }

    error += dy;
    if (error > 0) {
      if (y == toY) {
        break;
      }
      y += ystep;
      error -= dx;
    }
  }
  // Found black-white-black; give the benefit of the doubt that the next pixel outside the image
  // is "white" so this last point at (toX+xStep,toY) is the right ending. This is really a
  // small approximation; (toX+xStep,toY+yStep) might be really correct. Ignore this.
  if (state == 2) {
    return MathUtils.distance(toX + xstep, toY, fromX, fromY);
  }
  // else we didn't find even black-white-black; no estimate is really possible
  return Float.NaN;
}
 
开发者ID:atomsheep,项目名称:sres-app,代码行数:64,代码来源:Detector.java

示例8: distance

import com.google.zxing.common.detector.MathUtils; //导入方法依赖的package包/类
/**
 * @param pattern1 first pattern
 * @param pattern2 second pattern
 * @return distance between two points
 */
public static float distance(ResultPoint pattern1, ResultPoint pattern2) {
  return MathUtils.distance(pattern1.x, pattern1.y, pattern2.x, pattern2.y);
}
 
开发者ID:amap-demo,项目名称:weex-3d-map,代码行数:9,代码来源:ResultPoint.java


注:本文中的com.google.zxing.common.detector.MathUtils.distance方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。