如何使用OpenCV在Java中调整图像大小?

时间:2014-01-03 11:12:06

标签: java opencv image-resizing

我正在裁剪图像,并希望下一步调整大小。

Mat croppedimage = cropImage( image, rect );
Mat resizeimage = croppedimage.resize( any dimension ); //need to change this line

我该怎么做?

3 个答案:

答案 0 :(得分:43)

我想,你想要this

e.g。

Mat croppedimage = cropImage(image,rect);
Mat resizeimage = new Mat();
Size sz = new Size(100,100);
Imgproc.resize( croppedimage, resizeimage, sz );

答案 1 :(得分:2)

  1. 请阅读c ++方法手册Resize,这与java相同。

  2. 您可以选择插值类型。在某些情况下,获得最佳结果非常重要。

    Mat croppedImage = cropImage(image,rect);
    Mat resizeImage = new Mat(anyHeight, anyWidth, croppedImage.type());   
    int interpolation = Imgproc.INTER_CUBIC;   
    Imgproc.resize(croppedImage, resizeImage, resizeImage.size(), 0, 0, interpolation );
    

答案 2 :(得分:2)

如果要使用OpenCV java 缩放图像,请执行以下操作:

  import static org.opencv.imgproc.Imgproc.*;
  import static org.opencv.imgcodecs.Imgcodecs.imread;

主要代码:

   Mat src  =  imread("imageName.jpg");
   Mat resizeimage = new Mat();
   Size scaleSize = new Size(300,200);
   resize(src, resizeimage, scaleSize , 0, 0, INTER_AREA);

对于缩减,建议使用:INTER_AREA;对于缩减,建议使用INTER_CUBIC

有关更多详细信息:OpenCV Ref for Resize