我正在编写一个程序来调整图像大小,同时保留纵横比。基本上,我正在尝试将源图像放入一个保留宽高比的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);
输入,图像是Mat。 image.height()= 10,image.width()= 28。新的规模将是7,20。 但是当我运行代码时,我在Imgproc.resize()中得到一个空指针异常。我无法找到原因 即使我跑
,我也会得到同样的错误Imgproc.resize(image,output,dsize);
答案 0 :(得分:0)
使用 dsize 或比例因子,而不是两者。
你可能忘记了:
output = new Mat(); //你可以传递空的Mat,但不能为空
答案 1 :(得分:0)
原来我正在交换行和列,同时将图像强化为Mat。我正在使用BufferedImage并将高度和宽度混合在一起。它现在有效..谢谢大家!