明確ではなかった場合、画像のサイズを変更することです。
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
ドキュメントから:
スケーリングだけで画像のサイズ変更され、あなたが先のサイズとfx/fy
スケールファクタの両方を渡すresize
呼び出すときにも、あなたは何か1を渡す必要があります。 OpenCVには、この目的のために関数 cv2.resize()が付属しています。イメージのサイズは で手動で指定することも、倍率を指定することもできます。補間方法が異なる が使用されます。好ましい補間方法は、縮小の場合は cv2.INTER_AREA、ズームの場合はcv2.INTER_CUBIC(slow)& cv2.INTER_LINEARです。デフォルトでは、使用される補間方法はすべてのサイズ変更の目的で cv2.INTER_LINEARです。 (OpenCV
文書で述べたように)
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_CUBIC
よりも大幅に高速を縮小し、cv::INTER_AREA
作品の両方の方法を試してみました:
次の方法のいずれかの入力 画像のサイズを変更することができます
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);