2016-05-09 75 views
0

我很困惑,例外是在哪裏。
這是第一次我的編碼檢測程序檢測Hough界面JAVA OpenCV

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); 

} 

例外:

enter image description here

強調文本 圖像測試:

enter image description here

回答

0

HoughCircles需要8位圖像,但CV_LOAD_IMAGE_COLOR標誌將圖像轉換爲彩色圖像。嘗試使用CV_LOAD_IMAGE_GRAYSCALE來維護您正在閱讀的8位圖像。

查看文檔:imread docs

+0

感謝您的回答我找出問題所在 –