【OpenCV 基础知识 3】边缘检测

cvCanny

这行代码使用OpenCV库中的 cvCanny 函数对灰度图像进行边缘检测。让我解释一下:

cvCanny(gray, dst, 10, 100, 3);
  1. gray: 这是输入的灰度图像,即要进行边缘检测的图像。
  2. dst: 这是输出的边缘图像,即将结果存储到的图像。
  3. 10: 这是Canny边缘检测算法的低阈值。像素梯度值低于该阈值的边缘点将被抑制。
  4. 100: 这是Canny边缘检测算法的高阈值。像素梯度值高于该阈值的像素将被认为是强边缘,而低于该阈值但高于低阈值的像素将根据连接性保留或抑制。
  5. 3: 这是Sobel运算符的内核大小,用于计算图像的梯度。在这里,内核大小为3,表示使用3x3的Sobel内核。

所以,整个行的作用是使用Canny边缘检测算法对输入的灰度图像进行边缘检测,并将结果存储在 dst 中。这是一种常见的图像处理操作,用于检测图像中的边缘结构。

完整示例代码

program cv_Canny;

{$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;
  gray: pIplImage = nil;
  dst: pIplImage = nil;

begin
  try

    image := cvLoadImage(filename);
    WriteLn(Format('[i] image: %s', [filename]));

    //创建两张纯灰图像
    gray := cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);
    dst := cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);


    cvNamedWindow('original', CV_WINDOW_AUTOSIZE);
    cvNamedWindow('gray', CV_WINDOW_AUTOSIZE);
    cvNamedWindow('cvCanny', CV_WINDOW_AUTOSIZE);

    // 灰度化图片
    cvCvtColor(image, gray, CV_RGB2GRAY);

    // 边缘检测
    cvCanny(gray, dst, 10, 100, 3);


    cvShowImage('original', image);
    cvShowImage('gray', gray);
    cvShowImage('cvCanny', dst);

    cvWaitKey(0);

    cvReleaseImage(image);
    cvReleaseImage(gray);
    cvReleaseImage(dst);

    cvDestroyAllWindows();
  except
    on E: Exception do
      WriteLn(E.ClassName, ': ', E.Message);
  end;

end.

相关推荐

  1. OpenCV 基础知识 3边缘检测

    2024-05-16 10:32:13       33 阅读
  2. Python-OpenCV-边缘检测

    2024-05-16 10:32:13       39 阅读
  3. Python-OpenCV-边缘检测

    2024-05-16 10:32:13       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-16 10:32:13       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-16 10:32:13       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-16 10:32:13       87 阅读
  4. Python语言-面向对象

    2024-05-16 10:32:13       96 阅读

热门阅读

  1. AOP统计SQl执行时间

    2024-05-16 10:32:13       25 阅读
  2. 英特尔处理器-----ERMS

    2024-05-16 10:32:13       29 阅读
  3. 科林算法_4 基础算法

    2024-05-16 10:32:13       26 阅读
  4. electron 使用两个页面(额外添加一个html文件)

    2024-05-16 10:32:13       36 阅读
  5. Log4j2滚动策略深度解析:保持日志轻量高效

    2024-05-16 10:32:13       24 阅读
  6. fastapi+vue实现导入Excel表格的功能

    2024-05-16 10:32:13       41 阅读
  7. 编译gdb:在x86虚拟机上,加载分析arm程序及崩溃

    2024-05-16 10:32:13       37 阅读
  8. 贪吃蛇(C++)

    2024-05-16 10:32:13       38 阅读