我需要Java中的函数opencv返回垫子中颜色的百分比,请

时间:2019-06-21 17:14:23

标签: java opencv mat

我需要Java中的函数opencv返回垫子中颜色的百分比,请

public boolean procentage(Mat imageOne, int porsontageDeChangemnt) {
    boolean tr = false;
    int width = (int) imageOne.width();
    int height = (int) imageOne.height();
    int maxPixel = width * height;
    int cont = 0;
    try {

        for (int i = 0; i < width; i++) {
            for (int j = 0; j < height; j++) {

                double[] colorPixel = imageOne.get(i, j);

                if (((int) colorPixel[0] == 255)) {
                    cont++;
                }
            }
        }
    } catch (Exception e) {
    }
    int c = (int) ((cont * 100) / maxPixel);
    if (c >= porsontageDeChangemnt) {
        tr = true;
    }
    if (c > porsontageDeChangemnt) {
        tr = true;
    }
    return tr;
}
此行中的

例外>> if(((int)colorPixel [0] == 255)){

1 个答案:

答案 0 :(得分:0)

因此,您尚未提供完整的实现,但我对其进行了少许修改以使其运行类似。

如果您将代码完全分解到基本级别,然后尝试执行以下操作:

    for (int j = 0; j < 300; j++) {

        double[] colorPixel = null;  //This what your code thinks it is doing

        if (((int) colorPixel[0] == 255)) {
            System.out.println(colorPixel.toString());
        }

您将在当前所在的同一行上得到相同的例外。问题是您有时在方法null中将imageOne值传递给procentage

如果您想获得更清晰的答案,则您将需要提出一个更清晰的问题,因为确切的问题并未显示在此处编写的代码中。