圖像分割算法:基於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列的矩陣

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