cvResize
在OpenCV中,cvResize 函数用于调整图像的大小。它允许你改变图像的尺寸,使其变得更大或更小。cvResize 函数的语法如下:
dst = cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
- src:输入图像。
- dsize:输出图像的期望尺寸,可以指定为元组 (width, height)。
- dst(可选):输出图像。如果未提供,则将创建一个新图像。
- fx(可选):沿水平轴的缩放因子。如果未提供,则设置为 0。
- fy(可选):沿垂直轴的缩放因子。如果未提供,则设置为 0。
- interpolation(可选):指定插值方法。可以取值如 cv2.INTER_LINEAR、cv2.INTER_NEAREST、cv2.INTER_CUBIC 等。默认值为 cv2.INTER_LINEAR。
完整示例代码
program cv_Resize;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
ocv.highgui_c,
ocv.core_c,
ocv.core.types_c,
ocv.imgproc_c,
uResourcePaths;
const
filename = cResourceMedia + 'cat2.jpg';
var
image: PIplImage = nil;
dst: array [0 .. 3] of PIplImage;
i: Integer;
begin
try
image := cvLoadImage(filename, 1);
i := 0;
Writeln('[i] image: ', filename);
if not Assigned(image) then
Halt;
// 创建4张图像,并把原始图像大小缩小3
for i := 0 to 3 do
begin
dst[i] := cvCreateImage(cvSize(image^.width div 3, image^.height div 3), image^.depth, image^.nChannels);
cvResize(image, dst[i], i);
end;
// 显示原始图像
cvNamedWindow('original', CV_WINDOW_AUTOSIZE);
cvShowImage('original', image);
// 显示4张小图像
for i := 0 to 3 do
begin
cvNamedWindow(PCVChar(IntToStr(i)), CV_WINDOW_AUTOSIZE);
cvShowImage(PCVChar(IntToStr(i)), dst[i]);
end;
cvWaitKey(0);
cvReleaseImage(image);
cvDestroyAllWindows();
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.