Python skimage快速图像处理(一)——开始

Python skimage快速图像处理(一)——开始

  • 简介
  • 安装
  • 导入
  • 显示图像
  • 示例图像和过滤器

简介

本文主要使用scikit-image库进行快速图像处理。
scikit-image库是图像处理的算法集合库,使用numpy矩阵进行操作。完全免费,没有限制。提供了高质量、经过同行评审的代码,该库由志愿者们写成。
官方网站:https://scikit-image.org/
API:https://scikit-image.org/docs/stable/api/api.html

安装

Windows:pip install scikit-image
Ubuntu:sudo apt-get install python-skimage
Anaconda:conda install -c conda-forge scikit-image

注意安装和导入不一样,安装时必须写全称,否则将出错。

导入

import skimage

显示图像

scikit-image库中,图像使用NumPy矩阵表示,如示例灰度图由二维矩阵表示:

from skimage import data
camera = data.camera()  # 读取示例图像
type(camera) # numpy.ndarray
camera.shape # (512, 512)

调用skimage.io看看该图片

from skimage import io
%matplotlib inline
io.imshow(camera)

Python skimage快速图像处理(一)——开始_第1张图片

同样,你可以使用其他库如Python绘图库matplotlib进行绘制

import matplotlib.pyplot as plt
plt.imshow(camera, cmap='gray')

若不指定cmapmatplotlib.pyplot.colormaps色彩图,则默认为None,效果如下
Python skimage快速图像处理(一)——开始_第2张图片

示例图像和过滤器

skimage.data子模块提供了一系列返回示例图像的方法,可以用于快速测试
skimage.filters子模块提供了一系列过滤器
skimage.data子模块中获取硬币图像,调用skimage.filters子模块中的大津法

from skimage import filters
coins = data.coins() # 硬币图像
threshold_value = filters.threshold_otsu(coins) # 大津法
threshold_value # 求得的阈值为107

大津法也称最大类间方差法,是一种对灰度图像进行二值化的算法,根据图像灰度分成前景和背景两部分,使前景和背景图像的类间方差最大。

原图、直方图和大津法二值化后的图像如图所示。
Python skimage快速图像处理(一)——开始_第3张图片

你可能感兴趣的:(Python,skimage)