Skimage图像处理教程4)形态学膨胀腐蚀开闭运算

这一讲我们介绍基于基于python的skimage包的形态学操作,主要介绍最常见的几个形态学操作,就是图像的膨胀腐蚀和开闭运算,主要利用skimage.morphology

膨胀和腐蚀很直观,膨胀就是让一个区域变大,腐蚀就是让一个区域变小很直观很形象。开运算就是先做腐蚀再做膨胀,这样可以去除图像中一些孤立的小点,将两个区域很细的连接去除,闭运算就是首先对图像进行膨胀之后再进行腐蚀,这样可以去除图像中一些孤立的小的背景。

下面我们就介绍主要用到的函数

# 膨胀
skimage.morphology.dilation(image, selem=None, out=None, shift_x=False, shift_y=False)

# 腐蚀
skimage.morphology.erosion(image, selem=None, out=None, shift_x=False, shift_y=False)

# 开运算
skimage.morphology.opening(image, selem=None, out=None)

# 闭运算
skimage.morphology.closing(image, selem=None, out=None)

# 白顶帽操作,原图减去开运算的结果
skimage.morphology.white_tophat(image, selem=None, out=None)

# 黑顶帽操作,闭运算的结果减去原图
skimage.morphology.black_tophat(image, selem=None, out=None)

除此之外做形态学操作一定会用到各种形态学算子下面就列出一些常用的算子

skimage.morphology.square(width, dtype=<class 'numpy.uint8'>)    #正方形
skimage.morphology.rectangle(width, height, dtype=<class 'numpy.uint8'>)    #长方形
skimage.morphology.diamond(radius, dtype=<class 'numpy.uint8'>)    #钻石形
skimage.morphology.disk(radius, dtype=<class 'numpy.uint8'>)    #圆形
skimage.morphology.cube(width, dtype=<class 'numpy.uint8'>)    #立方体
skimage.morphology.octahedron(radius, dtype=<class 'numpy.uint8'>)    #八面体
skimage.morphology.ball(radius, dtype=<class 'numpy.uint8'>)    #球体
skimage.morphology.octagon(m, n, dtype=<class 'numpy.uint8'>)    #八角形
skimage.morphology.star(a, dtype=<class 'numpy.uint8'>)    #星形

下面就用一个例子来说明一下各种操作的结果。

import skimage
img = skimage.data.binary_blobs(100)
skimage.io.imshow(img)
skimage.io.show()

kernel = skimage.morphology.disk(5)
img_dialtion = skimage.morphology.dilation(img, kernel)
skimage.io.imshow(img_dialtion)
skimage.io.show()

img_erosion = skimage.morphology.erosion(img, kernel)
skimage.io.imshow(img_erosion)
skimage.io.show()

img_open =skimage.morphology.opening(img, kernel)
skimage.io.imshow(img_open)
skimage.io.show()

img_close =skimage.morphology. closing(img, kernel)
skimage.io.imshow(img_close)
skimage.io.show()

img_white =skimage.morphology.white_tophat(img, kernel)
skimage.io.imshow(img_white)
skimage.io.show()

在这里插入图片描述
更多skimage教程请看这里

Skimage是一个用于图像处理和计算机视觉的Python库,它基于NumPy和SciPy。如果你想要在Ubuntu、MacOS或Windows上安装skimage,通常可以按照以下步骤进行: ### 对于Ubuntu或Debian系列系统(推荐使用pip) ```bash 1. 首先更新包列表并安装必要的依赖: ``` sudo apt-get update sudo apt-get install python3-dev libjpeg-dev libtiff5-dev libxml2-dev libxslt-dev ``` 2. 安装scikit-image: ``` pip3 install scikit-image ``` ### 对于Python虚拟环境(如venv或conda) 1. 创建一个新的虚拟环境: ``` python3 -m venv myenv ``` 其中`myenv`是你想给虚拟环境起的名字。 2. 激活虚拟环境: - Ubuntu/macOS/Linux: ```bash source myenv/bin/activate (或source activate myenv) ``` - Windows: ```bash myenv\Scripts\activate ``` 3. 使用pip安装skimage: ``` pip install scikit-image ``` ### 对于MacOS(Homebrew用户) 1. 安装Homebrew: ```bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/main/install.sh)" ``` 2. 安装依赖项: ``` brew install opencv@4 pip3 install scikit-image ``` 3. 如果需要GPU加速,还需要安装相关CUDA和cuDNN等。 ### 对于Windows 1. 安装Anaconda或其他科学计算平台(如Miniconda),然后通过其包管理器conda安装: ``` conda create -n myenv scikit-image conda activate myenv ``` 注意:在某些特定情况下,如果遇到安装问题,你可能需要访问skimage官方文档(https://scikit-image.org/stable/install.html),查看是否有针对你系统特性的额外指南。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值