web-dev-qa-db-ja.com

OpenCVでJavaで画像のサイズを変更する方法は?

画像をトリミングしていて、次にサイズを変更します。

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

これどうやってするの?

17
midhun0003

this が必要だと思います。

例えば.

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

OpenCV Java=を使用して画像をscale)する場合は、次の手順を実行します。

  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

2
asmmahmud
  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
Alexander Mckey