本例子的笔记,放在这里https://colab.research.google.com/drive/1ZVvfveFzIIOK005yRs5y_SuSmO1qRCD0
图像处理的基本操作是读取图像,显示图像,灰度图,二值化,直方图,图像分割,先来看看这些操作在skimage上如何做
import numpy as np
import matplotlib.pyplot as plt
from skimage import io,feature,color
#读取图像
img=io.imread('drive/My Drive/2.png')
#灰度图
imggray=color.rgb2gray(img)
io.imshow(imggray)
#显示图像,不是jupter book的话,要加下面这句话
#plt.show()
print(imggray.size)#834*660
print(img.ndim)#维度数
print(img.shape)#数组形状,png有rgba4个通道,jpg只有rgb三个通道
print(imggray.shape)
print(imggray.dtype)#数据类型
print(imggray[2][2])#可以看出,color.rgb2gray转灰度图时做了归一化处理
print(img[2][2][1])
#skimage没有提供专门的二值化函数,可以阀值法处理
c,r=imggray.shape
imgbw=np.zeros((c,r),dtype='uint8')
#python中没有三元运算符
for i in range(c):
for j in range(r):
if imggray[i,j]>0.5:
imgbw[i,j]=255
else:
imgbw[i,j]=0
#显示二值图
io.imshow(imgbw)
图像切割,可以根据直方图或连通区标记
关于直方图处理可以看下面的文字
https://www.cnblogs.com/denny402/p/5124833.html