91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

手寫k means算法并應用到圖像

資源截圖

代碼片段和文件信息

import?numpy?as?np
import?random

def?loss_function(present_center?pre_center):
????‘‘‘
????損失函數,計算上一次與當前聚類中的差異(像素差的平方和)
????:param?present_center:?當前聚類中心
????:param?pre_center:?上一次聚類中心
????:return: 損失值
????‘‘‘
????present_center?=?np.array(present_center)
????pre_center?=?np.array(pre_center)
????return?np.sum((present_center?-?pre_center)**2)


def?classifer(intput_signal?center):
????‘‘‘
????分類器(通過當前的聚類中心,給輸入圖像分類)
????:param?intput_signal:?輸入圖像
????:param?center:?聚類中心
????:return: 標簽矩陣
????‘‘‘
????input_row?input_col=?intput_signal.shape?#?輸入圖像的尺寸

????pixls_labels?=?np.zeros((input_row?input_col))??#?儲存所有像素標簽

????pixl_distance_t?=?[]??#?單個元素與所有聚類中心的距離,臨時用

????for?i?in?range(input_row):
????????for?j?in?range(input_col):
????????????#?計算每個像素與所有聚類中心的差平方
????????????for?k?in?range(len(center)):
????????????????distance_t?=?np.sum(abs((intput_signal[i?j]).astype(int)?-?center[k].astype(int))**2)
????????????????pixl_distance_t.append(distance_t)
????????????#?差異最小則為該類
????????????pixls_labels[i?j]?=?int(pixl_distance_t.index(min(pixl_distance_t)))
????????????#?清空該list,為下一個像素點做準備
????????????pixl_distance_t?=?[]
????return?pixls_labels


def?k_means(input_signal?center_num?threshold):
????‘‘‘
????基于k-means算法的圖像分割(適用于灰度圖)
????:param?input_signal: 輸入圖像
????:param?center_num: 聚類中心數目
????:param?threshold: 迭代閾值
????:return:
????‘‘‘
????input_signal_cp?=?np.copy

評論

共有 條評論