美文网首页OpenCViOS 开发每天分享优质文章iOS程序猿
OpenCV for iOS 学习笔记(十五)—— 自定义线性滤

OpenCV for iOS 学习笔记(十五)—— 自定义线性滤

作者: FLNuo | 来源:发表于2016-10-25 15:01 被阅读165次


    • 处理效果

    处理效果
    • 函数参数介绍

    主要函数filter2D
    void filter2D( InputArray src, // 预处理图像
    OutputArray dst, // 输出结果
    int ddepth, // 处理的深度。若为负值,则表示其深度与源图像相等。
    InputArray kernel, // 用来遍历图像的核
    Point anchor = Point(-1,-1), // 核的锚点的相对位置,其中心点默认为 (-1, -1) 。
    double delta = 0, // 在卷积过程中,该值会加到每个像素上。默认为 0 。
    int borderType = BORDER_DEFAULT ) // 保留默认

    全局变量
    int kernel_size; // 归一化块滤波器的核大小
    int ind = 0; // 自加变量,控制归一化块滤波器的核大小
    Mat src_F2D, dst_F2D; // 前为预处理图像,厚实结果
    Mat kernel; // 归一化核(用来遍历图像的核)
    cv::Point anchor(-1, -1); // 核的锚点位置
    double delta = 0; // 在卷积过程中,该值会加到每个像素上。
    int ddepth = -1; // 输出图像处理的深度
    实现(具体参见源码
    // 获取图像
    UIImage *image = [UIImage imageNamed:@"mm.jpeg"];
    UIImageToMat(image, src_F2D);

      /// 更新归一化块滤波器的核大小(此处ind是int类型变量,NSTimer控制其大小)
      kernel_size = 3 + 2 * (ind % 5);
      kernel = Mat::ones(kernel_size, kernel_size, CV_32F) / (float)(kernel_size*kernel_size);
    
      /// 使用滤波器
      filter2D(src_F2D, dst_F2D, ddepth, kernel, anchor, delta, BORDER_DEFAULT);
      /// 图像转化
      _imageView.image = MatToUIImage(dst_F2D);
    
    • 效果展示

    效果展示

    相关文章

      网友评论

        本文标题:OpenCV for iOS 学习笔记(十五)—— 自定义线性滤

        本文链接:https://www.haomeiwen.com/subject/xwdhuttx.html