当前位置: 首页 > news >正文

毕业设计网站方向黑龙江住房和城乡建设部网站

毕业设计网站方向,黑龙江住房和城乡建设部网站,电子商务网站建设哪好,台州有哪些做网站的公司03、K-means聚类实现步骤与基于K-means聚类的图像压缩#xff08;2#xff09; 工程下载#xff1a;K-means聚类实现步骤与基于K-means聚类的图像压缩 其他#xff1a; 03、K-means聚类实现步骤与基于K-means聚类的图像压缩#xff08;1#xff09; 03、K-means聚类实现…03、K-means聚类实现步骤与基于K-means聚类的图像压缩2 工程下载K-means聚类实现步骤与基于K-means聚类的图像压缩 其他 03、K-means聚类实现步骤与基于K-means聚类的图像压缩1 03、K-means聚类实现步骤与基于K-means聚类的图像压缩2 K-means聚类的图像压缩 开始学习机器学习啦已经把吴恩达的课全部刷完了现在开始熟悉一下复现代码。对这个手写数字实部比较感兴趣作为入门的素材非常合适。 1、K-means聚类图像压缩基本思路 我的想法是这副图像存在许多很大一块区域的颜色相近既然相近我们就用一种颜色替代一大块区域中的各色。我们可以人为的用8、16、24、32种颜色表示整幅图像的颜色也即说明聚类的个数为8、16、24、32。 上述说法是不准确的准确的说法是这副图像虽然很大但是其有些部分颜色相近这些颜色相近的部分不论是否出自同一位置我们都可以用一种颜色进行替代。我们可以使用8、16、24、32种颜色来代替原来图中的所有颜色。 在使用K-means聚类进行图像压缩时聚类的对象仅仅是颜色而已和颜色的所在位置是否相近无关也就是说这种压缩不改变像素的大小只改变色彩的鲜艳程度而已。具体来讲聚类是在三维坐标下进行的三个坐标轴分别为R G B 的具体数值。 下面简单介绍这种压缩算法的压缩效果。对于一张RGB888的彩色图像假设其大小为1920 * 1080那么其存储所需的大小为1920*1080 * 24因为RGB分别用8位来表示因此每个像素点有24位来表示其颜色。 此处有24位来表示颜色可表示的颜色个数为2^24种假设此处使用K16的K-means聚类算法对其进行压缩则代表压缩后的图像只包含K种颜色。 那么对于每个像素点而言则需要log2K4位来进行表示此外还需要K*24的空间来存储对应的24位RGB颜色因此压缩后的总空间为1920 * 1080 * log2K K * 24。 对于一张1920 * 1080 的图像压缩比例和K的对应关系如下所示 2、K-means聚类图像压缩底层实现 此处从K-means聚类的底层原理进行实现不调用库函数 import numpy as np from matplotlib import pyplot as plt# 随机初始化聚类初始优化点 def kMeans_init_centroids(X, K):# 随机重新排序样本的索引randidx np.random.permutation(X.shape[0])# 取前K个样本作为聚类中心centroids X[randidx[:K]]return centroidsdef find_closest_centroids(X, centroids):# 获取聚类中心的数量也即K值K centroids.shape[0]# 初始化一个数组用于存储每个样本所属的聚类中心的索引idx np.zeros(X.shape[0], dtypeint)# 遍历数据集中的每个样本for i in range(X.shape[0]):# 初始化一个列表用于存储当前样本到每个聚类中心的距离distance []# 计算当前样本到每个聚类中心的距离for j in range(centroids.shape[0]):# 使用欧几里得距离公式计算样本i与聚类中心j之间的距离norm_ij np.linalg.norm(X[i] - centroids[j])distance.append(norm_ij)# 找出距离列表中的最小值该最小值对应的索引就是当前样本所属的聚类中心idx[i] np.argmin(distance)# 返回每个样本所属的聚类中心的索引数组return idxdef compute_centroids(X, idx, K):# 获取数据集X的行数m和列数n# m表示样本数量n表示每个样本的特征数量m, n X.shape# 初始化一个K x n的零矩阵用于存储K个聚类中心# K表示聚类数量n表示特征数量centroids np.zeros((K, n))# 遍历每个聚类中心for k in range(K):# 从数据集X中选择属于当前聚类k的所有样本# idx是一个长度为m的数组存储了每个样本所属的聚类中心的索引points X[idx k]# 计算属于当前聚类k的所有样本的平均值得到聚类中心# axis0表示按列计算平均值centroids[k] np.mean(points, axis0)# 返回计算得到的K个聚类中心return centroidsdef run_kMeans(X, initial_centroids, max_iters10):# 获取数据集X的行数m和列数n# m表示样本数量n表示每个样本的特征数量m, n X.shape# 获取初始聚类中心的数量KK initial_centroids.shape[0]# 将初始聚类中心赋值给centroids变量centroids initial_centroids# 将初始聚类中心复制给previous_centroids变量用于后续比较聚类中心是否发生变化previous_centroids centroids# 初始化一个长度为m的零数组用于存储每个样本所属的聚类中心的索引idx np.zeros(m)# 开始运行K-means算法最多迭代max_iters次for i in range(max_iters):# 输出当前迭代进度print(K-Means iteration %d/%d % (i, max_iters - 1))# 调用find_closest_centroids函数为数据集X中的每个样本找到最近的聚类中心并返回索引数组idx find_closest_centroids(X, centroids)# 调用compute_centroids函数根据每个样本所属的聚类中心和索引数组计算新的聚类中心centroids compute_centroids(X, idx, K)# 返回最终的聚类中心和每个样本所属的聚类中心的索引return centroids, idx# Load an image of a bird original_img plt.imread(K_means_data/bird_small.png) # Visualizing the image plt.imshow(original_img) plt.show() print(Shape of original_img is:, original_img.shape)# Divide by 255 so that all values are in the range 0 - 1 # RGB各8位将其归一化至0-1 original_img original_img / 255 # Reshape the image into an m x 3 matrix where m number of pixels # 数组的内容是图像各个点的颜色m x 3 X_img np.reshape(original_img, (original_img.shape[0] * original_img.shape[1], 3))# K就是要使用几种颜色进行表达 K 8 max_iters 10# Using the function you have implemented above. 初始化的是rgb的数值因此是包含三个元素的数组 initial_centroids kMeans_init_centroids(X_img, K)# Run K-Means - this takes a couple of minutes centroids, idx run_kMeans(X_img, initial_centroids, max_iters)# Represent image in terms of indices X_recovered centroids[idx, :]# Reshape recovered image into proper dimensions X_recovered np.reshape(X_recovered, original_img.shape)# Display original image fig, ax plt.subplots(1, 2, figsize(8, 8)) plt.axis(off)ax[0].imshow(original_img * 255) ax[0].set_title(Original) ax[0].set_axis_off()# Display compressed image ax[1].imshow(X_recovered * 255) ax[1].set_title(Compressed with %d colours % K) ax[1].set_axis_off() plt.show() 3、K-means聚类图像压缩库函数实现 此处直接使用from sklearn.cluster import KMeans来进行K-means聚类代码更加简洁了 import matplotlib.pyplot as plt # plt 用于显示图片 import matplotlib.image as mpimg # mpimg 用于读取图片 from sklearn.cluster import KMeans import numpy as nporiginal_pixel mpimg.imread(K_means_data/bird_small.png) pixel original_pixel.reshape((128 * 128, 3))kmeans KMeans(n_clusters8, random_state0).fit(pixel)newPixel [] for i in kmeans.labels_:newPixel.append(list(kmeans.cluster_centers_[i, :]))newPixel np.array(newPixel) newPixel newPixel.reshape((128, 128, 3))# Display original image fig, ax plt.subplots(1, 2, figsize(8, 8)) plt.axis(off) ax[0].imshow(original_pixel) ax[0].set_title(Original) ax[0].set_axis_off()# Display compressed image ax[1].imshow(newPixel) ax[1].set_title(Compressed with %d colours % kmeans.n_clusters) ax[1].set_axis_off() plt.show() 4、小结 虽说写了那么多但是实际上还是没有输出压缩后的图片文件。压缩后的图片的大小是1920 * 1080 * log2K的此外还需要K * 24位来存储颜色表或许没办法用普通png来表示了那应该怎么生成文件嘞 之后一定填坑。
文章转载自:
http://www.morning.psxcr.cn.gov.cn.psxcr.cn
http://www.morning.hjssh.cn.gov.cn.hjssh.cn
http://www.morning.wwthz.cn.gov.cn.wwthz.cn
http://www.morning.prqdr.cn.gov.cn.prqdr.cn
http://www.morning.sggzr.cn.gov.cn.sggzr.cn
http://www.morning.gctgc.cn.gov.cn.gctgc.cn
http://www.morning.fnjrh.cn.gov.cn.fnjrh.cn
http://www.morning.tkchm.cn.gov.cn.tkchm.cn
http://www.morning.ndcf.cn.gov.cn.ndcf.cn
http://www.morning.flpjy.cn.gov.cn.flpjy.cn
http://www.morning.cnvlog.cn.gov.cn.cnvlog.cn
http://www.morning.hgsmz.cn.gov.cn.hgsmz.cn
http://www.morning.ljqd.cn.gov.cn.ljqd.cn
http://www.morning.spsqr.cn.gov.cn.spsqr.cn
http://www.morning.bzlsf.cn.gov.cn.bzlsf.cn
http://www.morning.lpgw.cn.gov.cn.lpgw.cn
http://www.morning.fbmzm.cn.gov.cn.fbmzm.cn
http://www.morning.bccls.cn.gov.cn.bccls.cn
http://www.morning.qddtd.cn.gov.cn.qddtd.cn
http://www.morning.bfybb.cn.gov.cn.bfybb.cn
http://www.morning.fmkjx.cn.gov.cn.fmkjx.cn
http://www.morning.mflqd.cn.gov.cn.mflqd.cn
http://www.morning.txkrc.cn.gov.cn.txkrc.cn
http://www.morning.rkxdp.cn.gov.cn.rkxdp.cn
http://www.morning.glbnc.cn.gov.cn.glbnc.cn
http://www.morning.xbwqg.cn.gov.cn.xbwqg.cn
http://www.morning.gkdqt.cn.gov.cn.gkdqt.cn
http://www.morning.rlksq.cn.gov.cn.rlksq.cn
http://www.morning.mumgou.com.gov.cn.mumgou.com
http://www.morning.gzgwn.cn.gov.cn.gzgwn.cn
http://www.morning.jkzjs.cn.gov.cn.jkzjs.cn
http://www.morning.sjwzl.cn.gov.cn.sjwzl.cn
http://www.morning.kfcfq.cn.gov.cn.kfcfq.cn
http://www.morning.dlgjdg.cn.gov.cn.dlgjdg.cn
http://www.morning.rfyk.cn.gov.cn.rfyk.cn
http://www.morning.bnmfq.cn.gov.cn.bnmfq.cn
http://www.morning.qdzqf.cn.gov.cn.qdzqf.cn
http://www.morning.tslfz.cn.gov.cn.tslfz.cn
http://www.morning.qmtzq.cn.gov.cn.qmtzq.cn
http://www.morning.kflpf.cn.gov.cn.kflpf.cn
http://www.morning.fssmx.com.gov.cn.fssmx.com
http://www.morning.gmswp.cn.gov.cn.gmswp.cn
http://www.morning.nlryq.cn.gov.cn.nlryq.cn
http://www.morning.bslkt.cn.gov.cn.bslkt.cn
http://www.morning.rzysq.cn.gov.cn.rzysq.cn
http://www.morning.wnjbn.cn.gov.cn.wnjbn.cn
http://www.morning.wmglg.cn.gov.cn.wmglg.cn
http://www.morning.gppqf.cn.gov.cn.gppqf.cn
http://www.morning.sgfgz.cn.gov.cn.sgfgz.cn
http://www.morning.cbmqq.cn.gov.cn.cbmqq.cn
http://www.morning.ldcrh.cn.gov.cn.ldcrh.cn
http://www.morning.hjwxm.cn.gov.cn.hjwxm.cn
http://www.morning.rpljf.cn.gov.cn.rpljf.cn
http://www.morning.zknjy.cn.gov.cn.zknjy.cn
http://www.morning.wgtr.cn.gov.cn.wgtr.cn
http://www.morning.jlktz.cn.gov.cn.jlktz.cn
http://www.morning.rnds.cn.gov.cn.rnds.cn
http://www.morning.nfbxgtj.com.gov.cn.nfbxgtj.com
http://www.morning.ylqpp.cn.gov.cn.ylqpp.cn
http://www.morning.pnmnl.cn.gov.cn.pnmnl.cn
http://www.morning.mphfn.cn.gov.cn.mphfn.cn
http://www.morning.qbnfc.cn.gov.cn.qbnfc.cn
http://www.morning.wylpy.cn.gov.cn.wylpy.cn
http://www.morning.lszjq.cn.gov.cn.lszjq.cn
http://www.morning.wrwcf.cn.gov.cn.wrwcf.cn
http://www.morning.jkzjs.cn.gov.cn.jkzjs.cn
http://www.morning.kngx.cn.gov.cn.kngx.cn
http://www.morning.mttck.cn.gov.cn.mttck.cn
http://www.morning.xiaobaixinyong.cn.gov.cn.xiaobaixinyong.cn
http://www.morning.hotlads.com.gov.cn.hotlads.com
http://www.morning.ryrpq.cn.gov.cn.ryrpq.cn
http://www.morning.gxhqt.cn.gov.cn.gxhqt.cn
http://www.morning.mdxwz.cn.gov.cn.mdxwz.cn
http://www.morning.kgphd.cn.gov.cn.kgphd.cn
http://www.morning.njftk.cn.gov.cn.njftk.cn
http://www.morning.rjnky.cn.gov.cn.rjnky.cn
http://www.morning.rkfgx.cn.gov.cn.rkfgx.cn
http://www.morning.njdtq.cn.gov.cn.njdtq.cn
http://www.morning.xcyzy.cn.gov.cn.xcyzy.cn
http://www.morning.gdpai.com.cn.gov.cn.gdpai.com.cn
http://www.tj-hxxt.cn/news/241345.html

相关文章:

  • 淘宝网站建设策划书如何看待百度竞价排名
  • 做外贸网站代理商wordpress 上一篇 下一篇 插件
  • 阿里云服务器的网站备案流程图网页制作培训班培训
  • 自助网站制作系统源码宣传片制作公司业务
  • 网站的图片大小wordpress php注释
  • 格子三合一交友婚恋网站模板响应式博客网站模板
  • 发卡网站搭建教程网站开发与服务合同范本
  • 南昌有哪些企业网站传统企业如何做好网络推广
  • 网站加强队伍建设wordpress 获取作者id
  • 成品网站和模板建站网站开发 职位晋升路线
  • 字体排版设计网站在线药店网站建设
  • 传统网站和手机网站的区别是什么网站开发质保
  • 网站seo服务没钱可以注册50万的公司吗
  • jsp网站开发介绍typecho移植wordpress
  • 深圳购物商城网站建设wordpress 找回密码邮件错误
  • 网站服务器租用一年多少钱啊做图片视频的网站有哪些问题吗
  • 兰州网站seo服务重庆营销型网站建设
  • 女人和男人做床上爱网站重庆优化官网服务
  • 网络教学平台的功能谷歌seo新规则
  • 网站的文字被爬取了友汇网站建设一般多少钱
  • 网站建设及维护机logo设计网站哪个好一些
  • 网站语言是什么盘锦市建设银行网站
  • 哈尔滨开发网站城乡建设部网站第35号令
  • 做门户网站的公司化妆品网站栏目设计
  • 做网站全部乱码怎么办昆明网站网站建设
  • 引用网站资料怎么注明大安网站建设
  • 和目网站wordpress 带用户中心
  • 上海营销型网站建设费用职业培训机构有哪些
  • 网站建设邀标比选网络开发与维护是做什么的
  • 爱做网站濮阳佳杰网站建设巧用不对称