【问题标题】:Detecting Hough circles JAVA OpenCV检测霍夫圆JAVA OpenCV
【发布时间】:2016-05-17 20:29:48
【问题描述】:

我很困惑异常在哪里。
这是am第一次编码检测程序

public static void chargement(Mat img) {
    NByte = (int) (img.total() * img.elemSize());
    buffer = new byte[NByte];
    img.get(0, 0, buffer);
}

public static Point[] detectCercle(Mat img, int rayon) {

    Mat circles = new Mat();
    Point[] circlesList = null;

    Imgproc.HoughCircles(img, circles, Imgproc.CV_HOUGH_GRADIENT, 1, 60, 200, 20, 30, 0);

    System.out.println("#rows " + circles.rows() + " #cols " + circles.cols());
    double x = 0.0;
    double y = 0.0;
    int r = 0;

    for (int i = 0; i < circles.rows(); i++) {
        double[] data = circles.get(i, 0);
        for (int j = 0; j < data.length; j++) {
            x = data[0];
            y = data[1];
            r = (int) data[2];
        }
        circlesList[i] = new Point(x, y);
    }
    return circlesList;

}

public static void main(String[] args) {
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    Mat matimage1 = Imgcodecs.imread("src/imge1.jpg", Imgcodecs.CV_LOAD_IMAGE_COLOR);
    Mat matimage2 = Imgcodecs.imread("src/image2.jpg", Imgcodecs.CV_LOAD_IMAGE_COLOR);
    Mat matimage3 = Imgcodecs.imread("src/image3.jpg", Imgcodecs.CV_LOAD_IMAGE_COLOR);
    detectCercle(matimage3,2);

}

例外:

强调文字 图片测试:

【问题讨论】:

    标签: java swing opencv


    【解决方案1】:

    HoughCircles 需要 8 位图像,但标志 CV_LOAD_IMAGE_COLOR 将图像转换为彩色图像。尝试使用 CV_LOAD_IMAGE_GRAYSCALE 来保持您正在阅读的 8 位图像。

    查看文档:imread docs

    【讨论】:

      猜你喜欢
      • 2019-04-14
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多