11.膨胀与腐蚀

  1. 图像形态学操作——基于形状的一系列图像处理操作的合集,主要是集合论基础上的形态学操作

    • 形态学有四个基本操作:腐蚀、膨胀、开、闭
  • 膨胀和腐蚀是图像处理中最常用的形态学操作手段
  1. 膨胀(理解为背景的膨胀)
    跟卷积操作类似,假设有图像A和及结构元素B,结构元素B在A上面移动,其中B来定义其中心为锚点,计算B覆盖下A的最大像素用来替换锚点的像素,其中B作为结构体可以是任意形状。
    通常我们可以通过图像卷积操作完成平滑,模糊,去燥,锐化,边缘提取
  2. 腐蚀(理解为物体的腐蚀)
    getStructuringElement函数腐蚀跟膨胀操作的过程类似,唯一不同的是以最小值替换锚点重叠下图像的像素值
    相关API
    会返回指定形状和尺寸的结构元素,通过结构元素对Mat对象下所赋值的对象的像素点进行操作
getStructuringElement(int  shape,Size    ksise,Point    anchor)
//形状(MORPH_RECT	/	MORPH_CROSS	/	MORPH_ELLIPSE)
//大小
//锚点		默认是Point(-1,-1)意思是中心像素 
//膨胀:dilate(src,dst,kernel)
//腐蚀:erode(src,dst,kernel)
  1. 创建滑动条(动态调节结构元素大小)
    作用:调节算法时,为了寻找一个较好的预值,可以使用该功能进行测试

```cpp
createTrackbar(
constString&trackbarname,//滑动条的名字
constString  winName,    //滑动条所在的窗口名字
int* value,              //滑块所在当前值,此处是个指针
int count,               //滑块的最大值  
Trackbarcallback  func,  //滑块所调用的函数——回调函数
void*userdata=0
其中最重要的是callback函数功能,如果设置为NULL就是说只有值update,但是不会调用callback的函数
  1. 回调函数——createTrackbar()函数的第五个参数
void Function——name (int ,void *)

注意事项:
一、如果有产生新的图像,那么新的图像变量名不能用之前的变量;如Canny(),结果图像要重新在回调函数canny_track()中编写。
二、如果要显示图像,imshow()函数中的窗口名要跟第一步创建窗口名一致,如果不一致,那么是滑动条和图像不在一个窗口显示,可能其他情况会需要这种结果,就另说了。

  1. 课外扩展
    opencv滑动条 的使用详解
    getStructuringElement函数
    图像的梯度
    图像梯度(水平和垂直梯度)提取边缘信息
    卷积及理解图像操作卷积的意义
    opencv创建滑动条以及滑动条的位置
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值