【OpenCV 基础知识 13】高斯平滑处理图像

函数 cvSmooth 可使用简单模糊、简单无缩放变换的模糊、中值模糊、高斯模糊、双边滤波的任何一种方法平滑图像。每一种方法都有自己的特点以及局限。 没有缩放的图像平滑仅支持单通道图像,并且支持8位到16位的转换(与cvSobel和cvLaplace相似)和32位浮点数到32位浮点数的变换格式。 简单模糊和高斯模糊支持 1- 或 3-通道, 8-比特 和 32-比特 浮点图像。这两种方法可以(in-place)方式处理图像。 中值和双向滤波工作于 1- 或 3-通道, 8-位图像,但是不能以 in-place 方式处理图像。

js 复制代码
program cv_Smooth;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils,
  ocv.highgui_c,
  ocv.core_c,
  ocv.core.types_c,
  ocv.imgproc_c,
  ocv.imgproc.types_c,
  uResourcePaths;

const
  // 桁 赅痱桧觇
  filename = cResourceMedia + 'cat2.jpg';

var
  image: PIplImage = nil;
  dst: PIplImage = nil;

begin
  try
    // 从文件加载图像并将其分配给变量 `image`
    image := cvLoadImage(filename, 1);

    // 克隆图像,将其分配给变量 `dst`
    dst := cvCloneImage(image);

    // 打印图像文件名
    Writeln('[i] image: ', filename);

    // 如果图像未被成功加载,终止程序
    if not Assigned(image) then
      Halt;

    // 创建并显示名为 'original' 的窗口,用于显示原始图像
    cvNamedWindow('original', CV_WINDOW_AUTOSIZE);

    // 创建并显示名为 'Smooth' 的窗口,用于显示经过平滑处理后的图像
    cvNamedWindow('Smooth', CV_WINDOW_AUTOSIZE);

    // 对原始图像进行高斯平滑处理,结果存储在 `dst` 中
    cvSmooth(image, dst, CV_GAUSSIAN, 3, 3);

    // cvSmooth(image, dst, CV_BLUR_NO_SCALE, 3, 3);

    cvShowImage('original', image);
    cvShowImage('Smooth', dst);

    cvWaitKey(0);

    cvReleaseImage(image);
    cvReleaseImage(dst);

    cvDestroyWindow('original');
    cvDestroyWindow('Smooth');
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end.
相关推荐
DianSan_ERP1 小时前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
在人间耕耘1 小时前
HarmonyOS Vision Kit 视觉AI实战:把官方 Demo 改造成一套能长期复用的组件库
人工智能·深度学习·harmonyos
够快云库1 小时前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
Eloudy1 小时前
CHI 开发备忘 08 记 -- CHI spec 08
人工智能·arch·hpc
homelook1 小时前
Transformer与电池管理系统(BMS)的结合是当前 智能电池管理 的前沿研究方向
人工智能·深度学习·transformer
ZPC82101 小时前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82101 小时前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
ssshooter1 小时前
免费和付费 AI API 选择指南
人工智能·aigc·openai
掘金酱2 小时前
「寻找年味」 沸点活动|获奖名单公示🎊
前端·人工智能·后端