。此外,當你調用resize
你通過這兩個目標的大小和fx/fy
規模因素的影響,你應該通過東西之一:
Mat src = imread(...);
Mat dst;
resize(src, dst, Size(), 2, 2, INTER_CUBIC); // upscale 2x
// or
resize(src, dst, Size(1024, 768), 0, 0, INTER_CUBIC); // resize to 1024x768 resolution
UPDATE:從OpenCV
文檔:
縮放只是調整圖像的。 OpenCV爲此提供了函數 cv2.resize()。手動指定圖像的大小 ,或者您可以指定比例因子。使用不同的插值方法。優選的插值方法是 用於縮小的cv2.INTER_AREA和用於縮小的cv2.INTER_CUBIC(慢)& cv2.INTER_LINEAR。默認情況下,對於所有調整大小的目的,使用的插值方法是 cv2.INTER_LINEAR。您可以調整任一下列方法輸入 圖像:
import cv2
import numpy as np
img = cv2.imread('messi5.jpg')
res = cv2.resize(img,None,fx=2, fy=2, interpolation = cv2.INTER_CUBIC)
#OR
height, width = img.shape[:2]
res = cv2.resize(img,(2*width, 2*height), interpolation = cv2.INTER_CUBIC)
此外,在Visual C++
,我嘗試了二者收縮之後方法和cv::INTER_AREA
作品顯著快於cv::INTER_CUBIC
(由OpenCV
文檔中提到):
cv::Mat img_dst;
cv::resize(img, img_dst, cv::Size(640, 480), 0, 0, cv::INTER_AREA);
cv::namedWindow("Contours", CV_WINDOW_AUTOSIZE);
cv::imshow("Contours", img_dst);