13.形态学操作应用——提取水平和垂直线

  1. 主要内容:
    形态学操作的应用——提取水平与垂直线原理方法
    实现步骤

  2. 原理方法
    图像形态学操作的时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感、另一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出,通过使用两个基本的形态学操作——膨胀(dilate)和腐蚀(erode),使用不同的结构元素实现对输入图像的操作,得到想要的结果。(理解对比开操作和闭操作)
    膨胀——输出的像素值是结果元素覆盖下输入图像的最大像素值
    腐蚀——输出的像素值是结构元素覆盖下输入图像的最小像素值

例如:我需要提取水平线或者垂直线 保留水平线即设置一个对垂直线不敏感对水平线敏感的结构元素,运用合适的形态学操作进行

  1. 结构元素
    膨胀和腐蚀可以使用任意形状的结构元素
    常见的形状:矩形、圆、直线、磁盘形状、砖石形状等各种自定义形状

  2. 提取步骤
    输入图像彩色图像imread
    转换为灰度图像——cvtColor
    转换为二值图像——adaptiveThreshold
    定义结构元素
    开操作(腐蚀+膨胀)提取水平与垂直线

  3. 相关API——转换为二值图像——adaptiveThreshold

adaptiveThreshold(
    Mat src,//输入的灰度图像
    Mat dest,//输入的二值图像
    double maxValue,//二值图像的最大值
    int adaptiveMethod,//自适应方法,只能其一
                       //ADAPTIVE_THRESE_MEAN_C
                       //ADAPTIVE_THRESH_GAUSSIAN_C
    int thresholdType,//阈值类型
    int blockSize,//块大小
    double C//常量C可以是正数,0,负数
)

有时为了让输出的图像显示更圆滑,可以使用blue函数进行图像的模糊操作

实例:去除文字的干扰线
原图:

输入源图像——输入灰度图——输入二值图——定义结构元素——使用形态学操作中的开操作 结果图:

在这里插入图片描述
6. 课外扩展:
Wellner 自适应阈值二值化算法
拜小白opencv22-自适应阈值化操作:adaptiveThreshold()函数
OpenCV阈值操作(Threshold,AdaptiveThreshold)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值