bwlabel和bwconncomp区别

颜色取反 J=imcomplement(I)

imadd       两个图像相加,或者一个图像加上一个常量
imsubstract 两个图像相减,或者一个图像减掉一个常量
immultiply     两个图像相乘,或者一个图像乘上一个常量
imdivide    两个图像相除,或者一个图像除以一个常量
imabsdiff    两个图像的差的绝对值
imcomplement 求一个图像的反色
inlincomb    求一组图像的线性组合

filter2      滤波器设计

fspecial     产生预定义滤波器

stdfilt      求图像的局部标准差。

roipoly      指定感兴趣多边形区域    自编文件名函数 CutIntrest.m

imcontour    灰度图像轮廓

hough        houth变换

houghpeaks 识别Hough中的峰值 

bestblk      确定进行块操作的块大小

blkproc      实现图像的显示块操作

col2im       将矩阵的列重新组织到块中

colfilt      利用列相关函数进行边沿操作

im2col       重调图像块为列 注意参数‘distinct’和‘sliding’的区别。不能默认。

nlfilter     进行边沿操作

 

bwboundaries    获取二值图中对象的轮廓

bwtraceboundary 追踪二值图像中单个边界

 

 

 

函数bwlabel,belabeln和bwconncomp都是标记二值图像中的连通域。Bwconncomp可以替代bwlabel and bwlabeln的用法,而且需要相当小的计算空间并且比一些较早的函数计算速度更快。

函数  输入图像维数 输出形式  内存使用  邻域类型
 bwlabel  2-D  双精度标记矩阵    4 或 8
 bwlabeln  N-D  双精度标记矩阵    任意
 bwconncomp  N-D  CC 结构    任意

其中一条命令是
CC=bwconncomp(A,4)
其中A是经过二值化后的图像。想在想请教一下这条命令中CC和bwconncomp分别是什么意思。我在help中看的有点晕,本人化学专业,数学方面实在太差。
还有就是那个4在help中我看是二维四连通邻域,想请教一下这个命令中4代表什么?与6,8,16,28有什么区别?
<pre id="best-content-1766197913" class="best-text mb-10" name="code" style="white-space: pre-wrap; word-wrap: break-word; margin-top: 0px; margin-bottom: 10px; padding: 0px; font-family: arial, 'courier new', courier, 宋体, monospace; background-color: rgb(241, 254, 221);">bwconnecomp()是找出二值图像中连通的区域, CC返回结果,比如这样一幅图(简化便于理解):
BW = [ 0 0 0 0 0;

            0 1 1 0 0; 
            0 1 1 0 0;
            0 0 0 1 1;
           1 1 0 0 0];
CC = bwconncomp(BW,4);

其中,4/8表示查找连通像素的搜索路径, 4:如下查询4个方向,8: 查询8个方向, (6 18 26 用于三维图)   

0   1   0
    1   p   1  ===>  4连接,p为当前像素点。
    0   1   0

    1   1   1
    1   p   1  ====》8连接, p为当前像素点。
    1   1   1

CC中返回内容:

      Connectivity: 4  --> 4连通
      ImageSize: [5 5]  -> 图像大小
      NumObjects: 3  -> 找到连通区域数量
    PixelIdxList: -->连通区域序列号,比如上图,List的内容为:
  5,10

   7,8,12,13
   19,24
  (从列方向数)

追问
首先谢谢您的耐心解答,我还有几个问题没明白:
1、这个命令可以理解成在图像中每一个像素点都相应查找的连通区域然后扣除其中重叠部分统计其总个数吗?
2、这个连通区域怎么理解呢?就是四个方向有一个相似的元素就算是连通区域吗?这个程序的目的是找出图像上孔的个数和面积,而这些孔都不是连通的,为什么要有这一步找连通区域呢?
字数限制,评论里还有一点,麻烦您关注一下,谢谢您
回答
  1. 应该理解为找出具有两个像素以上,相互连通的区域,标记连通像素点,并统计连通域数量.具体算法会计算每个像素的4个或8个方向是否连通,然后把整个连通域确定下来.

  2. 连通域首先是一个集合,且集合中任意两个点之间都存在着完全属于该集合的连通路径. 因为是二值图像所以不存在"相似",而是都为1或0.

  3. 图像上的孔就是一个独立的连通域,找到所有的连通域就得到了孔的数量,和构成各个孔的所有像素从而进一步计算面积

 




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值