尺寸調整顧名思義就是用來調整源圖像或者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);
}
源圖像:
縮小圖檔:
放大圖檔: