哑java函数+;OpenCV
伙计们,你们能帮我摆脱这个错误吗。 我真的不知道发生了什么,但它有一个NullPointerException并不断终止我的程序 我知道,在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(
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(),)
意味着您试图获取超出最大允许索引的单元格。