简单了解数字图像处理的基本概念、主要内容和应用。
了解数字图像的表示、存储和属性。
简单进行代码的编写、调试程序。
skimage即是Scikit-Image,是基于python脚本语言开发的数字图片处理包。 skimage包的全称是scikit-image SciKit (toolkit for SciPy) ,它对scipy.ndimage进行了扩展,提供了更多的图片处理功能。它是由python语言编写的,由scipy 社区开发和维护。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() #显示结果,展示图片
代码如下:
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]
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()
以上就是今天要讲的内容,本文仅仅简单介绍了数字图像处理通过python实现的一些基础语法,skimage包以及其中的一些模块(如data,io模块等),小伙伴们也可以自行探索,欢迎讨论。