Je recadre l'image et je souhaite la redimensionner ensuite.
Mat croppedimage = cropImage( image, rect );
Mat resizeimage = croppedimage.resize( any dimension ); //need to change this line
Comment puis-je faire ceci?
Je pense que tu veux ça .
par exemple.
Mat croppedimage = cropImage(image,rect);
Mat resizeimage = new Mat();
Size sz = new Size(100,100);
Imgproc.resize( croppedimage, resizeimage, sz );
Si vous voulez mettre à l'échelle une image à l'aide d'OpenCV Java, procédez comme suit:
import static org.opencv.imgproc.Imgproc.*;
import static org.opencv.imgcodecs.Imgcodecs.imread;
Code principal:
Mat src = imread("imageName.jpg");
Mat resizeimage = new Mat();
Size scaleSize = new Size(300,200);
resize(src, resizeimage, scaleSize , 0, 0, INTER_AREA);
Pour la réduction d'échelle, il est recommandé d'utiliser: INTER_AREA et pour la conversion d'échelle, utilisez INTER_CUBIC.
Pour plus de détails: OpenCV Ref for Resize
Veuillez lire le manuel pour la méthode c ++ Redimensionner il en va de même pour Java.
Vous pouvez choisir un type d'interpolation. Dans certains cas, c'est important pour un meilleur résultat.
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 );