图像分割算法:基于KNN的像素级分割算法

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列的矩阵

###################################
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章