Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哑java函数+;OpenCV_Java_Opencv - Fatal编程技术网

哑java函数+;OpenCV

哑java函数+;OpenCV,java,opencv,Java,Opencv,伙计们,你们能帮我摆脱这个错误吗。 我真的不知道发生了什么,但它有一个NullPointerException并不断终止我的程序 我知道,在opencv中,如果您使用函数Mat.get(row,col)将返回一个double数组,用于BGR颜色空间,如下所示 double[] value = new double[]({B, G, R}); 但是每当我想知道数组double的值是多少时,我就遇到了一个异常 有人能看看这个吗? 以下是我的功能: public Mat defineContour(

伙计们,你们能帮我摆脱这个错误吗。 我真的不知道发生了什么,但它有一个NullPointerException并不断终止我的程序

我知道,在opencv中,如果您使用函数
Mat.get(row,col)
将返回一个double数组,用于BGR颜色空间,如下所示

double[] value = new double[]({B, G, R});
但是每当我想知道数组double的值是多少时,我就遇到了一个异常 有人能看看这个吗? 以下是我的功能:

public Mat defineContour( Mat src, Mat dst )    {
    double[] value;// = new double[]{0, 0, 0};
    double[] s = new double[]{0, 0, 255}, p1, p2, p3;
    for(int i = src.rows(); i > 0; i--) {
        for(int j = 0; j < src.cols(); j++) {
            value = src.get(i, j);
            System.out.println(value[0]);
        }// for j
    }//for i

    return dst;
}//defineContour
public Mat defineContour(Mat src,Mat dst){
double[]值;/=新的double[]{0,0,0};
double[]s=新的double[]{0,0,255},p1,p2,p3;
对于(int i=src.rows();i>0;i--){
对于(int j=0;j
我只想检查并打印值[0]的值,它是一个包含三个元素的双精度[]。(BGR)所以我希望给定对象有一个值


它会继续为此异常终止整个程序。请帮忙

您应该从
src.rows()-1
索引,而不是从
src.rows()
索引。
当引用的值超出Mat的实际大小时,得到的是
null
值,而不是数组。这使您的
value
等于
null
,并且当您尝试获取值的第一个元素时:
value[0]
,会抛出
NPE

每当抛出异常时,请发布该异常的堆栈跟踪。谢谢,它解决了我的问题!但是我想我不必对scr.cols做同样的事情?呵呵。你能解释一下为什么我需要从src.rows()-1索引它吗?你是对的,我更正了我的答案。因为如果src.height()等于10,则表示有10行。但它们被从0 idex到最后一个在9索引上。因此,
src.get(src.height(),)
意味着您试图获取超出最大允许索引的单元格。