【OpenCV 基础知识 5】调整图像大小

发布于:2024-05-18 ⋅ 阅读:(160) ⋅ 点赞:(0)

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.

网站公告

今日签到

点亮在社区的每一天
去签到