天天看點

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()/,src.rows()/), , , Imgproc.INTER_AREA);
        Imgcodecs.imwrite("F:\\narrow.jpg", dst);

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

源圖像:

Java+opencv3.2.0之圖像尺寸調整

縮小圖檔:

Java+opencv3.2.0之圖像尺寸調整

放大圖檔:

Java+opencv3.2.0之圖像尺寸調整