Java+opencv3.2.0之图像尺寸调整

尺寸调整顾名思义就是用来调整源图像或者ROI区域的大小。

Opencv3.2.0中提供了函数模型:
Imgproc.resize(Mat src, Mat dst, Size dsize, double fx, double fy, int interpolation)
参数说明:
src:源图像
dst:输出图像
dsize:输出图像的大小。如果它为0,则计算dsize=new Size(Math.round(fx*src.cols()), Math.round(fy*src.rows())),其中dsize、fx、fy不能同时为0
fx:水平方向的方向系数,有默认值0。当fx=0时,会计算fx=(double) dsize.width() / src.cols()
fy:垂直方向的方向系数,有默认值0。当fy=0时,会计算fy=(double) dsize.height() / src.rows()
interpolation:插值方式。默认为INTER_LINEAR。可选的插值方式有:INTER_NEAREST(最邻近插值)、INTER_LINEAR(线性插值)、INTER_AREA(区域插值)、INTER_CUBIC(三次样条插值)、INTER_LANCZOS4(Lanczos插值)等

例子:

public static void main(String[] args) {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

        Mat src = Imgcodecs.imread("F:\\6b47d2a2g74e02b3805e9&690&690.jpg");

        Mat dst = new Mat();
        Imgproc.resize(src, dst, new Size(src.cols()/2,src.rows()/2), 0, 0, Imgproc.INTER_AREA);
        Imgcodecs.imwrite("F:\\narrow.jpg", dst);

        Mat endst = new Mat();
        Imgproc.resize(src, endst, new Size(src.cols()*2,src.rows()*2), 0, 0, Imgproc.INTER_LINEAR);
        Imgcodecs.imwrite("F:\\enlarge.jpg", endst);
    }

源图像:
Java+opencv3.2.0之图像尺寸调整_第1张图片

缩小图片:
Java+opencv3.2.0之图像尺寸调整_第2张图片

放大图片:
Java+opencv3.2.0之图像尺寸调整_第3张图片

你可能感兴趣的:(OpenCV3.2.0)