使用resize Open Cv Java时出现空指针异常

使用resize Open Cv Java时出现空指针异常,java,opencv,Java,Opencv,我正在编写一个程序,在保留纵横比的同时调整图像的大小。基本上,我试图将源图像放入一个20x20的框中,并保留纵横比 float ra= (float)20/image.width(); Size dsize = new Size((int)(image.height()*ra),20); // System.out.println(image.height() + " "+image.width()); //System.out.println((int)(image.height()*ra)+

我正在编写一个程序,在保留纵横比的同时调整图像的大小。基本上,我试图将源图像放入一个20x20的框中,并保留纵横比

float ra= (float)20/image.width();
Size dsize = new Size((int)(image.height()*ra),20);
// System.out.println(image.height() + " "+image.width());
//System.out.println((int)(image.height()*ra)+" " + 20);
Imgproc.resize(image,output, dsize,ra,ra, Imgproc.INTER_LINEAR);    
输入,图像是一个垫子。image.height()=10,image.width()=28。新尺寸为7,20。 但是,当我运行代码时,在Imgproc.resize()处会出现一个空指针异常。我找不到原因。
即使我运行,也会出现同样的错误

Imgproc.resize(image,output,dsize);
  • 使用dsize或比例因子,不能同时使用两者

  • 你可能忘了:

    输出=新垫();//您可以传递空垫,但不能为空


结果是,我在将图像增强到Mat中的同时交换了行和列。我用的是BuffereImage,把高度和宽度弄混了。现在可以用了。。谢谢大家

我已将Mat output=新Mat();如果我把dsize=new Size(20,20),它就可以工作。但这不起作用,我试过Imgproc.resize(图像、输出、大小);同样的问题…^^你似乎自相矛盾对不起,在哪里?我的意思是,我在Imgproc.resize(图像、输出、大小)中遇到了相同的错误;我简单地将dsize声明为Size Size=newsize(20,20);它起作用了,但这确实保留了纵横比。如果我不清楚,我道歉!尺寸(20,20*img.高度/img.宽度);我确信dsize不是空的。如果我把dsize=new Size(20,20),那么图像和输出也不会为空;这将不会保留纵横比。