K-means聚类颜色量化

颜色量化

颜色量化是指减少在图像中的颜色数量的压缩过程,是一种对彩色图像进行数字图形处理的常用方法。其核心内容是在尽量减少初始彩色图像失真的前提下,能够将颜色丰富的原始彩色图像映射至颜色种类较少的量化图像上的过程。

K-means颜色量化流程

先在图像颜色空间里随机选取K种颜色,利用这K种颜色生成一个初始的调色板,再根据颜色距离的就近原则,将彩色图像中的每个像素都映射到初始生成的调色板中去,从而形成K种聚类,最后得到每一类像素颜色的均值,再根据这些均值来生成新的调色板。不断重复这一过程,直至颜色板中的颜色不再变化时终止算法。

clear;
clc;
close all;
loli=imread('lenna.jpg'); %读取彩色图像
[x,y,channel]=size(loli); %原图片为彩色图像,loli为x*y*3的数组
loli_vec=reshape(loli,x*y,channel); %将loli返回到一个[x*y,3]的loli_vec数组
figure
for i = 1:4K=2^i; %颜色板K种颜色[~,cls]=k_means(double(loli_vec),[],K,[]); %实行K-meanscenters=zeros(K,channel);for k=1:Kcenters(k,:)=mean(loli_vec(cls==k,:)); %求每一类像素颜色均值endcenters=uint8(centers);  %将双精度浮点数组改为8位无符号整数,减小占存loli_vec_zip=centers(cls,:);loli_zip=reshape(loli_vec_zip,x,y,channel);subplot(1,4,i)imshow(loli_zip)imwrite(loli_zip,['loli_zip_' num2str(i) '.jpg'])disp(['loli_zip_',num2str(i),'.jpg has saved.'])
end

K-means聚类颜色量化相关推荐

  1. OpenCV的k - means聚类 -对图片进行颜色量化

    OpenCV的k - means聚类 目标 学习使用cv2.kmeans()数据聚类函数OpenCV 理解参数 输入参数 样品:它应该的np.float32数据类型,每个特性应该被放在一个单独的列. ...

  2. OpenCV官方文档 理解k - means聚类

    理解k - means聚类 目标 在这一章中,我们将了解k - means聚类的概念,它是如何工作等. 理论 我们将这个处理是常用的一个例子. t恤尺寸问题 考虑一个公司要发布一个新模型的t恤. 显然 ...

  3. k means聚类算法_K-Means 聚类算法 20210108

    说到聚类,应先理解聚类和分类的区别 聚类和分类最大的不同在于:分类的目标是事先已知的,而聚类则不一样,聚类事先不知道目标变量是什么,类别没有像分类那样被预先定义出来. K-Means 聚类算法有很多种 ...

  4. k means聚类算法_一文读懂K-means聚类算法

    1.引言 什么是聚类?我们通常说,机器学习任务可以分为两类,一类是监督学习,一类是无监督学习.监督学习:训练集有明确标签,监督学习就是寻找问题(又称输入.特征.自变量)与标签(又称输出.目标.因变量) ...

  5. 机器学习(十四):K均值聚类(kmeans)

    k均值聚类方法是一种无监督机器学习技术,用于识别数据集中的数据对象集群.有许多不同类型的聚类方法,但k -means是最古老和最平易近人的方法之一.这些特性使得在 Python 中实现k -means ...

  6. Python OpenCV应用K均值聚类进行颜色量化

    Python OpenCV应用K均值聚类进行颜色量化 1. 效果图 2. 颜色量化是什么? 3. MiniBatchKMeans & KMeans 4. 源码 参考 在这篇博客文章中,我将向您 ...

  7. matlab调用kmeans_使用 K 均值聚类实现基于颜色的分割

    步骤 1:读取图像 在 hestain.png 中读取,这是一个带有苏木精和曙红染色组织 (H&E) 的图像.这种染色方法有助于病理学家区分不同组织类型. he = imread('hesta ...

  8. 计算机视觉与深度学习 | 使用K均值聚类实现基于颜色的分割(matlab版)

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  9. k均值聚类算法(K Means)及其实战案例

    算法说明 K均值聚类算法其实就是根据距离来看属性,近朱者赤近墨者黑.其中K表示要聚类的数量,就是说样本要被划分成几个类别.而均值则是因为需要求得每个类别的中心点,比如一维样本的中心点一般就是求这些样本 ...

最新文章

  1. 认清企业现状,做好信息化建设
  2. nacos单机模式使用mysql库_Nacos docker 单机模式,mysql 搭建
  3. android listview item 错位,Android BaseAdapter和ViewHolder 优化 解决ListView的item抢焦点问题和item错乱问题...
  4. Gartner公布2017年十大战略科技发展趋势
  5. 【ES6(2015)】Set
  6. Android平台的用户行为记录解决方案
  7. 2020-09-14 编译Qt的MySQL 5.7插件: qsqlmysql.dll
  8. C# 调用mschart控件
  9. hsqldb mysql_hsqldb简单使用总结
  10. JS 更合理的随机分组
  11. php设计鸡兔同笼问题解法,鸡兔同笼问题口诀及解题方法(含经典应用题及答案)...
  12. linux进行挂载Nas存储
  13. 【Python】解决使用 plt.savefig 保存图片时一片空白
  14. LeetCode07整数反转(JAVA)
  15. 鼠标按住后拖动StringGrid
  16. 再次出现用户净流失,大失颜面的中国移动推出超低价套餐争取用户
  17. 2018 ISCC re\web\misc WP
  18. 《高级无线网络—4G技术》——第1章  基础 1.1 4G网络及复合无线环境
  19. 分体式耳机是什么意思?2021年高音质分体式蓝牙耳机推荐
  20. Web自动化【7】——python 使用QQ邮箱发送邮件,端口号25,465,578,的区别,及错误码535,530的解决办法

热门文章

  1. 有效ip地址_本地连接没有有效IP配置,可尝试这3种方法,轻松解决此问题
  2. 触及软件架构(个人随笔)
  3. python语句结尾分号吗_Python 为什么不用分号作终止符?
  4. 互联网公司开工红包大比拼!许多大厂竟然被一家保险公司碾压!
  5. Java序列化——JDK序列化与Json序列化
  6. 【Python】FofaSRC
  7. Windows系统下磁盘加密
  8. 如何用JuiceSSH玩转Linux与Windows
  9. SQL2005SP2以及VS2005SP1补丁下载
  10. 【多租户】初识多租户