iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中学习K-Means和图片压缩
  • 702
分享到

python中学习K-Means和图片压缩

图片pythonMeans 2022-06-04 19:06:15 702人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

大家在学习python中,经常会使用到K-Means和图片压缩的,我们在此给大家分享一下K-Means和图片压缩的方法和原理,喜欢的朋友收藏一下吧。 通俗的介绍这种压缩方式,就是将原来很多的颜色用少量的颜

大家在学习python中,经常会使用到K-Means和图片压缩的,我们在此给大家分享一下K-Means和图片压缩的方法和原理,喜欢的朋友收藏一下吧。

查看图片

通俗的介绍这种压缩方式,就是将原来很多的颜色用少量的颜色去表示,这样就可以减小图片大小了。下面首先我先介绍下K-Means,当你了解了K-Means那么你也很容易的可以去理解图片压缩了,最后附上图片压缩的核心代码。

K-Means的核心思想

查看图片

查看图片

k-means的核心算法也就上面寥寥几句,下面将分三个部分来讲解:初始化簇中心、簇分配、簇中心移动。

初始化簇中心

查看图片

随机取簇中心若是不幸,会出现局部最优的情况;想要打破这种情况,需要多次取值计算来解决这种情况。

代价函数
查看图片

代码实现


J = zeros(100,1);
M = size(X,1);
min = inf;
for i = 1:100
%随机取k个样本点作为簇中心
randidx = randperm(M);
initial_centroids = X(randidx(1:K),:);
%将所得的中心点进行训练
[centroids0, idx] = runkMeans(X, initial_centroids,10);
for k = 1:M 
J(i) = J(i) + sum((X(k,:) - centroids0(idx(M),:)).^2); 
end
%取最小代价为样本中心点
if(min > J(i))
centroids =centroids0;
end
end

簇分配

将样本点分配到离它最近的簇中心下


tmp = zeros(K,1);
for i = 1:size(X,1)
for j = 1:K
tmp(j) = sum((X(i,:) - centroids(j,:)).^2);
end
[mins,index]=min(tmp);
idx(i) = index;
end

簇中心移动

取当前簇中心下所有样本点的均值为下一个簇中心


for i = 1:m
centroids(idx(i),:) = centroids(idx(i),:) + X(i,:);
end

for j = 1:K
centroids(j,:) = centroids(j,:)/sum(idx == j);
end

图片压缩


% 加载图片
A = double(imread('draGonfly.jpg'));
% 特征缩减
A = A / 255; 
img_size = size(A);
X = reshape(A, img_size(1) * img_size(2), 3);
K = 16; 
max_iters = 10;

%开始训练模型
initial_centroids = kMeansInitCentroids(X, K);
[centroids, idx] = runkMeans(X, initial_centroids, max_iters);

%开始压缩图片
idx = findClosestCentroids(X, centroids);
X_recovered = centroids(idx,:);
X_recovered = reshape(X_recovered, img_size(1), img_size(2), 3);
%输出所压缩的图片
subplot(1, 2, 2);
imagesc(X_recovered)

--结束END--

本文标题: python中学习K-Means和图片压缩

本文链接: https://www.lsjlt.com/news/16019.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python中k-means和k-means++原理及实现
    目录前言k-means原理k-means++原理k-means及k-means++代码实现k-means实现k-means++实现参考文档前言 k-means算法是无监督的聚类算法,...
    99+
    2024-04-02
  • Android图片压缩(质量压缩和尺寸压缩)
    在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩);质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可...
    99+
    2023-05-31
    android 图片压缩 roi
  • python中k-means和k-means++原理是什么及怎么实现
    这篇文章主要介绍“python中k-means和k-means++原理是什么及怎么实现”,在日常操作中,相信很多人在python中k-means和k-means++原理是什么及怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
    99+
    2023-06-30
  • 教你用Python压缩图片
    质量、速度、廉价,选择其中两个 如果需要做图片识别那么必定需要大量的训练素材,我们通常使用爬虫来获取,python爬取bing图片,python爬取百度图片,但是怕取下来的图片大小不一,再进行训练之前必须进行裁剪和压缩,今天就来讲一讲...
    99+
    2023-01-31
    教你用 图片 Python
  • python实现图片批量压缩
    目录第一种 一:安装包二:导入包三:获取图片文件的大小四:输出文件夹下的文件五:压缩文件到指定大小,我期望的是150KB,step和quality可以修改到最合适的数值六:...
    99+
    2024-04-02
  • 如何使用Python实现图片压缩
    小编给大家分享一下如何使用Python实现图片压缩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、引言我们先来看一下,自拍照原图。图片大小是 53KB接下来,就...
    99+
    2023-06-26
  • Python简易图片批量压缩程序
    说明 运行环境:Win10 Pycharm 程序没有用到面向对象编程方法,只是简单的面向过程设计 用到的模块:PIL、os、sys 使用方法: 在Pycharm的terminal中输入”python xxx.py source...
    99+
    2023-01-31
    批量 简易 程序
  • python怎么实现图片批量压缩
    这篇文章主要介绍python怎么实现图片批量压缩,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和float(浮...
    99+
    2023-06-14
  • Python实现图片压缩的案例详解
    目录1、引言2、PIL模块2.1 quality 方式2.2 thumbnail方式3、OpenCV模块3.1 安装3.2 执行代码4、总结1、引言 小屌丝:鱼哥,求助,求助 小鱼:...
    99+
    2024-04-02
  • Python使用OpenCV和K-Means聚类对毕业照进行图像分割
    图像分割是将图像分割成多个不同区域(或片段)的过程。目标是将图像的表示变成更容易和更有意义的图像。 在这篇博客中,我们将看到一种图像分割方法,即K-Means Clustering。...
    99+
    2024-04-02
  • JavaScript中怎么实现图片压缩功能
    JavaScript中怎么实现图片压缩功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。压缩思路涉及到 JS 的图片压缩,我的想法是需要用...
    99+
    2024-04-02
  • 计算机中如何压缩图片大小
    小编给大家分享一下计算机中如何压缩图片大小,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  步骤讲解:  步骤一:在电脑上新建一...
    99+
    2024-04-02
  • Android中怎么实现图片压缩功能
    Android中怎么实现图片压缩功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、图片质量压缩    public s...
    99+
    2023-05-31
    android
  • 怎么在html5中使用canvas压缩图片
    这期内容当中小编将会给大家带来有关怎么在html5中使用canvas压缩图片,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。知识点:canvas 的 toDataURL('image/png'...
    99+
    2023-06-09
  • python批量压缩图片的脚本代码分享
    本篇文章和大家了解一下python批量压缩图片的脚本代码分享。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。简介用Python批量压缩图片,把文件夹或图片直接拖入即可需要 NeedsPython 3Pillow (用pip...
    99+
    2023-06-15
  • Python+TinyPNG熊猫网站自动化的压缩图片
    前言 本篇在讲什么 Python+TinyPNG自动化处理图片 本篇需要什么 对Py...
    99+
    2023-08-30
    python 自动化 开发语言
  • 怎么使用python对图片进行批量压缩
    本篇内容主要讲解“怎么使用python对图片进行批量压缩”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用python对图片进行批量压缩”吧!使用Python和Pillow模块压缩图片Pil...
    99+
    2023-07-02
  • Linux下怎么压缩和优化jpg与png图片
    这篇文章主要介绍“Linux下怎么压缩和优化jpg与png图片”,在日常操作中,相信很多人在Linux下怎么压缩和优化jpg与png图片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下怎么压缩和优化...
    99+
    2023-06-12
  • Java 中如何对图片进行压缩处理
    问题背景 图片过大时,会造成页面卡顿甚至于报错,而且现在页面,接口,很多地儿都有报文传输的最大限制要求,另外不知道各位有没有遇到过页面渲染比较大的 base64 图片时,会非常的卡顿。所以,我们必须对用户上传的原始图片进行压缩处理。 为何...
    99+
    2023-08-31
    java 开发语言 压缩图片
  • Python Pillow Image.save保存为jpg图片压缩的方法
    本篇内容主要讲解“Python Pillow Image.save保存为jpg图片压缩的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python Pillow...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作