资源简介

请结合本人该篇博客进行理解: https://blog.csdn.net/weixin_44344462/article/details/88169565

资源截图

代码片段和文件信息

# 程序用到了‘opencv‘、‘matplotlib‘和‘numpy‘库,请先自行配置。
# 第‘11‘行换成要处理图像的路径

import cv2
import matplotlib.pyplot as plt
import numpy as np


# ======准备工作======
# 原图像路径
imPath = ‘xxx.jpg‘

# 读取图像
origin = cv2.imread(imPath)

# 将图像转换为灰度图像
origin = cv2.cvtColor(origin cv2.COLOR_BGR2GRAY)

# 图像大小信息
h w = origin.shape
print(“原始图像大小为 :{}*{}“.format(h w))

# 设置缩放系数,系数越大缩放程度越强
alpha = int(input(“\n请输入缩放系数 : “))

# 图像缩放
newH = int(h / alpha)
newW = int(w / alpha)
print(“\n缩放后图像大小 : {}*{}“.format(newH newW))
origin = cv2.resize(origin (newW newH))

# 设置分为几类
numOfClass = int(input(“\n色彩分类数 : “))

# 设置最大迭代次数
roundForLoop = int(input(“\n定义最大迭代次数 : “))
print()

# ======进行聚类======
print(“————开始聚类————“)

# 以等分最大与最小区间来初始化numOfClass个中心点
valueArange = origin.max() - origin.min()
keyValueList = []  # 用来存储numOfClass个中心点的值

for i in range(1 numOfClass + 1):
    keyValueList.append(valueArange / numOfClass * i / 2)

# 聚类更新keyValueList
flagMatrix = np.zeros((newH newW))

for 

评论

共有 条评论