美文网首页iOS 开发每天分享优质文章iOS程序猿IOS
OpenCV for iOS 学习笔记(十四)—— 给图像添加边

OpenCV for iOS 学习笔记(十四)—— 给图像添加边

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


  • 处理效果

效果展示
  • 函数解析(copyMakeBorder

    void copyMakeBorder(InputArray src,   // 原图
                        OutputArray dst,  // 处理结果
                        int top,          // 上边界高
                        int bottom,       // 下边界高
                        int left,         // 左边界宽度
                        int right,        // 右边界宽度
                        int borderType,   // 边界类型
                        const Scalar& value = Scalar() ); // 填充边界像素
    
  • 源码

  • 源码片段
    需要用到的变量声明
    Mat src_CMB, dst_CMB; // 像素矩阵声明
    int top, bottom, left, right; // 边距声明
    int borderType; // 边界类型
    Scalar value; // 边界填充颜色
    RNG rng(12345); // 随机发生器
    获取图像
    UIImage *img = [UIImage imageNamed:@"6_S"];
    UIImageToMat(img, src_CMB);
    初始化参数
    /// 初始化输入参数
    top = (int)(0.3 * src_CMB.rows); // 上
    bottom = (int)(0.3 * src_CMB.rows); // 下
    left = (int)(0.3 * src_CMB.cols); // 左
    right = (int)(0.3 * src_CMB.cols); // 右

     borderType = BORDER_CONSTANT;  // 赋值图像类型(可common+左键查看API)
     
     value = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));  // 随机产生填充颜色
    

    载入边框
    copyMakeBorder(src_CMB, dst_CMB, top, bottom, left, right, borderType, value);
    UIImage *imge = MatToUIImage(dst_CMB); // 转换成UIImage对象
    创建了一个定时器,实现边框颜色的自动调整
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timer:) userInfo:nil repeats:YES];
    [timer fire];
    NSTimer Action
    - (void)timer:(NSTimer *)timer {
    // 计算颜色
    value = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
    // 加入边框
    copyMakeBorder(src_CMB, dst_CMB, top, bottom, left, right, borderType, value);
    _imageView.image = MatToUIImage(dst_CMB);
    }

  • 效果展示

效果展示

相关文章

网友评论

    本文标题:OpenCV for iOS 学习笔记(十四)—— 给图像添加边

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