【python 图像处理】skimage的子模块介绍

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

io:读取、保存和显示图片或视频
data:提供一些测试图片和样本数据
color:颜色空间变换
filters:图像增强、边缘检测、排序滤波器、自动阈值等
draw:操作于numpy数组上的基本图形绘制,包括线条、矩形、圆和文本等
transform:几何变换或其它变换,如旋转、拉伸和拉东变换等
morphology:形态学操作,如开闭运算、骨架提取等
exposure:图片强度调整,如亮度调整、直方图均衡等
feature:特征检测与提取等
measure:图像属性的测量,如相似性或等高线等
segmentation:图像分割
restoration:图像恢复
util:通用函数

用到一些图片处理的操作函数时,需要导入对应的子模块,如果需要导入多个子模块,则用逗号隔开,如:

from skimage import data, color, io
#-*-coding:utf-8-*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from skimage import io,color
import  numpy as np

# 如果想读取灰度图,可以将imread的as_grey参数置为True,as_grey默认值为False。
image=io.imread("E:/ID/5.jpg")

io.imshow(image)

io.show()


# io.imsave("E:/ID/6.jpg",image)



#####################################加入噪声(像素点设置成255(白色),0(黑色)########################
def add_noise(image):
    rows, cols, dim3 = image.shape
    print  rows, cols, dim3
    n = rows * cols / 10
    print n
    for i in range(n):
        x = np.random.randint(0, rows)
        y = np.random.randint(0, cols)
        print x,y
        image[x, y, :] = 255
    return image


image = add_noise(image)
io.imshow(image)
io.show()


#####################图像裁剪##########################
roi=image[12:120, 10:110, :]
io.imshow(roi)
io.show()

#########################二值化处理#######################

image1=io.imread("E:/ID/3.jpg")
img_gray=color.rgb2gray(image1)
rows,cols=img_gray.shape
for i in range(rows):
    for j in range(cols):
        if (img_gray[i,j]<=0.8):
            img_gray[i,j]=0
        else:
            img_gray[i,j]=1

# 使用了color模块的rgb2gray()函数,将彩色三通道图片转换成灰度图。转换结果为float64类型的数组,范围为[0,1]之间。
io.imshow(img_gray)
io.show()

你可能感兴趣的:(数据科学--python)