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
  • 相关阅读:
    electron 显示对话框 showMessageBoxSync showMessageBox
    c++ 随机数 取值范围 多线程
    c++ 字符串转换为数字
    VS2019 C++动态链接库的创建使用(1)
    js mutationobserver property vs attribute
    Chromium base 基础库概览
    Git:合并分支----git merge命令应用的三种情景
    chromium 处理 addEventListener 事件
    JavaScript监听属性改变
    chrome 启动开关参数
  • 原文地址:https://www.cnblogs.com/chenyang920/p/8232887.html
Copyright © 2011-2022 走看看