opencv学习笔记(十)-图像腐蚀与腐蚀

相关概念:

腐蚀:删除对象边界某些像素。

结构元素

设有两幅图象B,X。若X是被处理的对象,而B是用来处理X的,则称B为结构元素(structure element),又被形象地称做刷子。结构元素通常都是一些比较小的图象。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

腐蚀过程介绍:

对二值图腐蚀过程:

在图6.10中,左边是被处理的图象X(二值图象,我们针对的是黑点),中间是结构元素B,那个标有origin的点是中心点,即当前处理元素的位置。腐蚀的方法是,拿B的中心点和X上的点一个一个地对比,如果B上的所有点(指的是所有黑点)都在X的范围内(即X图上处理元素所在的位置以及它上,左两个点都是黑色),则该点保留,否则将该点去掉(变为白点);右边是腐蚀后的结果。可以看出,它仍在原来X的范围内,且比X包含的点要少,就像X被腐蚀掉了一层。
这里写图片描述

对灰度图像的腐蚀:

如下图,左边是要处理图像,中间是结构元素,右边是与对应每个像素的灰度值。

处理过程就是:与上面的B一样,中间是要处理的元素所在的位置,三个1所在的位置对应三个灰度值,然后将中间这个1对应的灰度值改成这三个最小的,如源图像第一个灰度值1,它上左都没有灰度值,所以最小就是它本身,所以输出也是1,再比如处理灰度值为22那个点的时候,上面是7左边是44,所以22应改为7。

这里写图片描述

腐蚀的作用

1,边缘检测。
2,噪声滤除。
3,形态骨架提取。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

腐蚀例程:

1:从灰度值层面介绍腐蚀


#include "cv.h"
#include "highgui.h"
#include "cxcore.h"

int main()
{
    //创建源图像
    IplImage* src = cvCreateImage(cvSize(11, 10), 8, 1);

    //创建图像  用来保存输出后的图像
    IplImage* dat = cvCreateImage(cvSize(11,10), 8, 1);

    //图像清零
    cvSetZero(dat);
    cvSetZero(src);

    //将源图像赋初值
    int x, y;

    //(1,6)-->(1,9)
    //(2,6)-->(2,9)
    //(3,6)-->(3,9)
    for (y = 1; y < 4; y++)
    {
        for (x = 6; x < 10; x++)
        {
            
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值