1.前提假设:图像分割区域较明显。
2.算法步骤:
2-1算法预处理:对输入图像按区域进行样本提取,对提取后的区域,按一定比例按类别存储。(亦是制作训练样本集的过程)
2-2.算法执行:(1)提取每一类别的像素值,并按照通道数求其平均值。然后分别进行存储。
(2)提取输入图像的每一个像素值(包括RGB)信息。
(3)对输入的每一个像素值分别和每一个类别的平均像素值做平方差计算,并求其最小平方差。
(4)通过步骤(3)即可将输入图像的每一个像素值分到每一类别样本中。
3.算法效果:通过该算法基本能实习图像分割的目的。但是,对于图像边缘区域的分割效果不够理想。
4.代码实现:
import time
import numpy as np #导入numpy库
import matplotlib.image as mpimg #加载pil的包
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
from skimage import io,data
time_start=time.time()
num_class = 8 # 七巧板+背景共八个类别
num_channels = 3 #通道数
str_train_path = "./train" #训练样本集路径
str_test_path = "./test" #测试样本集路径
centers = np.zeros([num_class,num_channels]) #创建一个8行3列的矩阵
###################################