山东大学机器学习(实验六内容)—— K-Means

1. 描述

  在这个练习中,你将使用K-means通过减少图像包含的颜色数量来压缩图像。首先,下载data6.zip并将其内容加载到Matlab/Octave工作目录中。
  照片来源:本练习使用的鸟照片属于Frank Wouters,经其许可使用。

2. 图像表示

  这个练习的数据包含一个538像素×538像素的TIFF图像,名为bird_large.tiff。它看起来像下面的图片。

  这幅图像的直接24位颜色表示中,每个像素由三个8位数字(从0到255)表示,他们指定了红、绿和蓝的强度值。我们的鸟照片包含了千种颜色,但我们想把这个数字减少到16种。通过这种减少,通过只存储图像中16种颜色的RGB值,可以更具体地表示照片。

  在这个练习中,您将使用K-Means将颜色计数减少到k=16.也就是说,你将计算16种颜色作为聚类中心,并将图像中的每个像素替换为最近的聚类中心颜色。
  因为计算聚类538×538图像对一台台式电脑很很耗时,你将在128×128的bird_small.tiff上运行K-Means。一旦你计算了小图像上的聚类中心,就可以使用16种颜色替换大图像中的像素。

3. K-means in Matlab/Octave

在Matlab/Octave中,用以下命令将小图像加载到程序中:

A = double(imread('bird_small.tiff'));

  这将创建一个三维矩阵A,其前两个索引标识像素位置,最后一个索引表示红色、绿色或蓝色。例如,A(50,33,3)给出了像素在位置y=50,x=33处的蓝色强度。(首先给出Y位置,但在我们的示例中这并不重要,因为X和Y尺寸具有相同的尺寸)
  你的任务是从该图像计算16个集群中心,每个中心是一个长度为3的向量,包含一组RGB值。这里是k-均值算法,因为它适用于这个问题:

3.1 K-mean算法
  1. 初始化时,从原始小图片中随机抽取16种颜色作为样本。μ1,μ2,…,μ16\mu_1,\mu_2,\dots,\mu_{16}μ1,μ2,,μ<
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值