我需要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)){
答案 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
。
如果您想获得更清晰的答案,则您将需要提出一个更清晰的问题,因为确切的问题并未显示在此处编写的代码中。