• 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
  • 相关阅读:
    【Flutter学习】页面布局之基础布局组件
    【Flutter学习】基本组件之AppBar顶部导航栏
    【Flutter学习】基本组件之BottomNavigationBar底部导航栏
    开发日记:JsonCSharpHelp
    会议抢订
    C# WinForm 技巧十: winfrom 全屏自适应屏幕分辨率
    阿里云 轻量应用服务器(LAMP) 使用日志记录
    常见模块设计--权限管理(auth)
    PHP获取项目所有控制器方法名称
    想要开发自己的PHP框架需要那些知识储备?
  • 原文地址:https://www.cnblogs.com/chenyang920/p/8232887.html
Copyright © 2020-2023  润新知