基于skimage的数字图像处理(一)——基础

数字图像处理 基础

  • 前言
  • 一、skimage是什么?
    • 1.模块内容
    • 2.安装skimage包
  • 二、图片显示
  • 三、图片的基本属性信息
  • 四、图像通道
  • 总结


前言

简单了解数字图像处理的基本概念、主要内容和应用。
了解数字图像的表示、存储和属性。
简单进行代码的编写、调试程序。


一、skimage是什么?

skimage即是Scikit-Image,是基于python脚本语言开发的数字图片处理包。 skimage包的全称是scikit-image SciKit (toolkit for SciPy) ,它对scipy.ndimage进行了扩展,提供了更多的图片处理功能。它是由python语言编写的,由scipy 社区开发和维护。skimage包由许多的子模块组成,各个子模块提供不同的功能。

1.模块内容

基于skimage的数字图像处理(一)——基础_第1张图片

2.安装skimage包

在Notebook中执行命令语句:

# 运行以下代码,完成skimage的安装
!pip install scikit-image

二、图片显示

在skimage中io.read可以读取目标路径下(需要自己导入)的图像,data库中则提供了可以直接使用的图片。

代码如下:

# 运行以下代码,完成图片的显示

#导入数字图像处理包skimage的子模块data,便于之后使用其中的图片
from skimage import data

#导入绘图库(matplotlib.pyplot是一些命令行风格函数的集合,使matplotlib以类似于MATLAB的方式工作。)
import matplotlib.pyplot as plt

img = data.coffee()   #导入data模块中的coffee的图片
plt.imshow(img)     #接收img中的图像
plt.show()          #显示结果,展示图片

在notebook中运行就可以得到相应的结果:
基于skimage的数字图像处理(一)——基础_第2张图片


三、图片的基本属性信息

  1. 路径表示:
    '/‘代表根目录或路径层次之间的分隔,’./'代表当前路径。
  2. 使用skimage中的io子模块的图片读取、显示 。
  3. 了解图片的基本属性,如图片的尺寸、像素个数、通道、宽度、高度、像素值等 。

代码如下:

from skimage import io        #导入io模块,以读取目标路径下的图片
img = io.imread('./dog.jpg')  #读取dog.jpg文件
print(type(img))     #显示类型
print(img.shape)     #显示尺寸
print(img.shape[0])  #显示高度
print(img.shape[1])  #显示宽度
print(img.shape[2])  #显示图片通道数
print(img.size)      #显示总像素数
print(img.max())     #显示最大像素值
print(img.min())     #显示最小像素值
print(img.mean())    #像素平均值
print(img[0][0])     #指定像素点的像素值
io.imshow(img)       #io模块下显示图像
io.show()            #显示图像

结果:

(360, 520, 3)
360
520
3
561600
255
0
92.52089031339031
[17 27 3]
基于skimage的数字图像处理(一)——基础_第3张图片


四、图像通道

RGB图像一般有三个通道,通过编程查看效果:

代码如下:

from skimage import io           #导入io模块
img=io.imread('./dog.jpg')       #读取dog.jpg文件
import matplotlib.pyplot as plt  #导入绘图库

plt.figure(figsize=(16,10))        #figure(figsize=None); figsize:指定整体图像的宽和高,单位为英寸。

#显示R通道图像(灰度图像);
plt.subplot(2,2,1) #把显示界面分割成2*2的网格;三个参数分别表示行数,列数,图形标号。
# img[:, :, 0]表示图像单通道的第一个通道。
# cmap = 'gray' 显示出来的图像为灰度图像。
plt.imshow(img[:,:,0],cmap='gray') 


#显示G通道图像(灰度图像)
plt.subplot(2,2,2)
plt.imshow(img[:,:,1],cmap='gray')

#显示B通道图像(灰度图像)
plt.subplot(2,2,3)
plt.imshow(img[:,:,2],cmap='gray')

#显示原图像(彩色图像)
plt.subplot(2,2,4)
plt.imshow(img)

#输入plt.show()指令才能使之前的图像全部显示
plt.show()

结果:
基于skimage的数字图像处理(一)——基础_第4张图片


总结

以上就是今天要讲的内容,本文仅仅简单介绍了数字图像处理通过python实现的一些基础语法,skimage包以及其中的一些模块(如data,io模块等),小伙伴们也可以自行探索,欢迎讨论。

你可能感兴趣的:(数字图像处理,skimage,python,图像处理)