canny.rar

  • 浏览量:640
  • 下载量:4
  • 资料大小:0 B
  • 日期:2015-04-19
  • 上传者:fjjjnk1234
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

    简介:canny边缘检测算子是john f. canny于1986年开发出来的一个多级边缘检测算法。


     


    canny算法最重要的一个新特点是其试图将独立边的候选像素拼装成轮廓。轮廓的形成是对这些像素运用滞后性阀值。这意味着有两个阀值,上限和下限。如果一个像素的梯度大于上限阀值,则被认为是边缘像素,如果低于下限阀值,则被抛弃,如果介于二者之间,只有当其与高于上限阀值的像素连接时才会被接受。


     


    canny的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:


    1.好的检测 - 算法能够尽可能多地标识出图像中的实际边缘。


    2.好的定位 - 标识出的边缘要与实际图像中的实际边缘尽可能接近。


    3.最小响应 - 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。


     


    canny边缘检测主要涉及到以下几个函数:


    1.cvcanny


    函数原型:




    void cvcanny(
    const cvarr* img,
    cvarr* edges,
    double lowthresh,
    double highthresh,
    int aperturesize = 3
    );


    第一个参数表示输入的图像,必须是单通道灰度图


    第二个参数表示输出的边缘图像,为单通道黑白图


    第三个参数表示上限阀值


    第四个参数表示下限阀值


    第五个参数表示sobel算子大小,默认为3表示一个3x3的矩阵。


     


    2.cvcreatetrackbar


    功能:创建滑动条并添加到指定窗口


    函数原型:




    int cvcreatetrackbar(
    const char* trackbar_name,
    const char* window_name,
    int* value,
    intcount,
    cvtrackbarcallback on_change
    );


    函数说明:


    第一个参数表示该trackbar的名称。


    第二个参数表示trackbar显示窗口的名称。


    第三个参数表示滑动块的初始位置。


    第四个参数表示滑动块位置的最大值。


    第五个参数表示回调函数。当滑块位置有变化时,系统会调用该
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换