zoukankan      html  css  js  c++  java
  • python图片处理(一)

    在matlab中有相应的图像进行二值化处理,并且标记连通区域

    L = bwlabel(BW,n)

    返回一个和BW大小相同的L矩阵,包含了标记连BW中每个连通区域的类别标签,标签的值是1、2、num(连通区域的个数)n的值是4或者8,和算法中的搜索相同表示连通的方向,表示方向,4表示只有上下左右四个方向,8表示上下左右还有对角线。4连通或者8连通,默认为8连通。

    [L,num] = bwlabel(BW,n)

    num表示的是BW中连通区域的个数。

    举例说明:
    BW =
        1     1     1     0     0     0     0     0
        1     1     1     0     1     1     0     0
        1     1     1     0     1     1     0     0
        1     1     1     0     0     0     1     0
        1     1     1     0     0     0     1     0
        1     1     1     0     0     0     1     0
        1     1     1     0     0     1     1     0
        1     1     1     0     0     0     0     0

    按4连通计算,方形的区域,和翻转的L形区域,有用是对角连接,不属于连通,所以分开标记,连通区域个数为3

    1. L = bwlabel(BW,4)

    复制代码结果如下:
    L =
        1     1     1     0     0     0     0     0
        1     1     1     0     2     2     0     0
        1     1     1     0     2     2     0     0
        1     1     1     0     0     0     3     0
        1     1     1     0     0     0     3     0
        1     1     1     0     0     0     3     0
        1     1     1     0     0     3     3     0
        1     1     1     0     0     0     0     0

    而8连通标记,它们是连通的:

    1. [L, num] = bwlabel(BW,8)

    复制代码L =
        1     1     1     0     0     0     0     0
        1     1     1     0     2     2     0     0
        1     1     1     0     2     2     0     0
        1     1     1     0     0     0     2     0
        1     1     1     0     0     0     2     0
        1     1     1     0     0     0     2     0
        1     1     1     0     0     2     2     0
        1     1     1     0     0     0     0     0
    这里
    num = 2
     

    在python中可以用skimage模块进行图像的二值化和图像连通,图像中

    from PIL import Image
    import matplotlib.image as mpimg
    import numpy as np
    
    path = '20150919131753_XcGPz.thumb.700_0.jpeg'
    img=io.imread(path,as_grey=False)
    img_gray=color.rgb2gray(img)
    from skimage import io,data,color
    rows,cols=img_gray.shape
    for i in range(rows):    
        for j in range(cols):
            if (img_gray[i,j]<=0.5):
                img_gray[i,j]=0
            else:
                img_gray[i,j]=1
  • 相关阅读:
    程序员学习能力提升三要素(转)
    网页游戏框架
    CS心得
    项目主管谈网页游戏:一将功成万骨枯
    分享成为高效程序员的7个重要习惯
    看代码的实质
    点击delphi中wwDBGrid标题进行排序
    DataRow 学习
    学习遇到的问题MVC设置 起始页后怎样恢复
    泛型中的where
  • 原文地址:https://www.cnblogs.com/chenyang920/p/8232887.html
Copyright © 2011-2022 走看看