数据处理--图片压缩

用于图像数据集预处理的K-means聚类算法 一、数据集和模型文件准备 1.1 数据集下载 使用kaggle猫狗大战的test中的前100张图像作为数据集1:dogs-vs-cats 使用100张红外船舶图像作为数据集2: 1.2 模型文件下载(可忽略) 通过使用更大、更复杂的模型,可以获得更高的准确率,预训练模型是一个很好的选择,我们可以直接使用预训练模型来完成分类任务,因为预训练模型通常已经在大型的数据集上进行过训练,通常用于完成大型的图像分类任务。 tf.keras.applications中有一些预定义好的经典卷积神经网络结构(Applica 阅读详情

一、压缩图片原理

压缩图片
颜色是256(0-255)种颜色
从中抽取16(4*4)种颜色
然后将图片上的所有颜色向这16种颜色上去靠
在保存的时候会将这16中颜色抽取出来
保存时图片就会被压缩。

1)

2)

3)

二、加载图片

1)加载图片

img = plt.imread('./data/bird.png')  # 加载图片 转换成多维数组
img

array([[[0.85882354, 0.7058824 , 0.40392157, 1.        ],
        [0.9019608 , 0.7254902 , 0.45490196, 1.        ],
        [0.8862745 , 0.7294118 , 0.43137255, 1.        ],
                ...,
        [0.25490198, 0.16862746, 0.15294118, 1.        ],
        [0.22745098, 0.14509805, 0.14901961, 1.        ],
        [0.20392157, 0.15294118, 0.13333334, 1.        ]]], dtype=float32)

可以看出读取出的图片数据是含有alpha通道的数据

2)去除透明度

img = img[:,:,:-1] 

img.shape
(128, 128, 3)

3)提取像素点

提取所有的像素点 每一个像素点作为一个样本 像素点这个样本有三个特征

X_train = img.reshape(-1,3) 

X_train.shape
(16384, 3)

三、K-means模型

1)导包

from sklearn.cluster import KMeans

2)获取模型,设置要分多少类

kmeans = KMeans(n_clusters=16)

3)训练并聚类

y_ = kmeans.fit_predict(X_train) 

聚类后的目标值是16类

np.sort(pd.Series(y_).unique()) 

array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15],
      dtype=int64)

4)寻找聚类中心

其实就是每一类像素点中的代表

centers = kmeans.cluster_centers_   # 按照各组顺序的 聚类中心

5)将原图片像素点替换为分类后的像素点

原理: 将原图数据的像素点替换为分为聚类后的像素点,这些像素点其实就是将原数据的像素点分为16种后的像素点

result_img = centers[y_] 

6)将聚类后的图片绘出来比较

注意:要将图片的数据进行形状还原

plt.imshow(result_img.reshape(128, 128, 3))

这里写图片描述

7)图片保存到本地

plt.imsave('./after',result_img.reshape(128, 128, 3))
简要介绍 | 图像聚类:概念、原理与方法 图像聚类作为计算机视觉和机器学习领域的一个重要研究方向,将继续吸引研究者的关注。随着深度学习的发展,图像聚类方法也取得了显著的进步。注1:本文系“简要介绍”系列之一,仅从概念上对图像聚类进行非常简要的介绍,不适合用于深入和详细的了解。有了特征表示和距离度量,接下来就可以利用聚类算法将相似的图像分到同一个类别。在特征提取之后,需要选择一个合适的距离度量方法来衡量图像之间的相似度。等领域具有广泛的应用,例如图像搜索、图像分割、图像压缩、异常检测等。图像聚类:概念、原理与方法。图像聚类:概念、原理与方法。 阅读详情

相关推荐

python相似图片聚类分类

import os, codecs import shutil import cv2 import numpy as np from sklearn.cluster import KMeans from scipy.spatial.distance import cdist def get_file_name(path): ''''' Args: path to list;

jacke121的专栏 8209

数据处理--图片像素点聚类

一、压缩图片原理 压缩图片 颜色是256(0-255)种颜色 从中抽取16(4*4)种颜色 然后将图片上的所有颜色向这16种颜色上去靠 在保存的时候会将这16中颜色抽取出来 保存时图片就会被压缩。 1) 2) 3) 二、加载图片 1)加载图片 img = plt.imread('./data/bird.png') # 加载图片 转换成多维数组 img arr...

PyRookie 7752

OpenClaw 完整命令文档(2026.3.13 最新版)

本文档为OpenClaw 2026.3.13通用版使用指南,包含核心命令大全。主要内容包括:1)基础安装/升级/卸载命令;2)ClawHub扩展安装命令(支持飞书/钉钉/企微等平台连接);3)Skills技能安装命令(实现聊天/搜索/记忆等功能);4)飞书机器人授权与配对命令;5)启动运行与配置检查命令;6)工作区与记忆管理命令;7)插件安全设置命令;8)调试日志命令;9)飞书机器人一键部署简化流程。文档特别强调飞书机器人部署需feishu扩展+对应技能+用户授权的完整配置,所有命令均需在终端执行,安装后需

MKliudan的专栏 1291

python手动实现图像像素的kmeans聚类(附代码)

python使用kmeans算法来对图像中的像素进行聚类。整个kmeans算法为手动实现,不调用sklearn库。

Lizhi_Tech的博客 5010

grafana使用方法

1、点击仪表盘2、新建仪表盘3、选择数据源4、选择查询的条件5、美化。

2403_87359664的博客 323

高速光耦在隔离串口通信中的选型与优化策略

本文深入探讨了高速光耦在隔离串口通信中的关键作用与选型优化策略。针对串口通信中因普通光耦响应慢导致的误码问题,文章详细分析了响应时间、电流传输比、供电电压与隔离耐压等核心选型指标,并对比了6N137、HCPL-0601等主流型号。同时,提供了电路设计、PCB布局的优化技巧及实用的调试指南,旨在帮助工程师实现高速、稳定的隔离串口通信。

grpc6streamer的博客 322

java base64压缩_Base64和Zip数据压缩与解压

压缩图片数据,解压图片数据public class TestZCompress {public static void main(String[] args) {try {File file = new File("D://haha.jpg");if (file.exists()) {InputStream in = new FileInputStream("D://haha.jpg");byte...

weixin_35981295的博客 1698

直流电源EMI滤波器设计实战:从器件选型到PCB布局的完整指南

本文提供了一份直流电源EMI滤波器的完整实战设计指南。针对EMI噪声超标问题,文章深入剖析了差模与共模噪声的抑制原理,详细讲解了从电路拓扑、核心器件(如X/Y电容、共模电感)的选型计算,到决定性能成败的PCB布局艺术。重点强调了低阻抗路径、干净接地及输入输出隔离等关键布局原则,并分享了常见的调试坑点与排查方法,旨在帮助硬件工程师设计出真正有效的滤波器,确保电源系统通过EMC测试。

q9r0s的博客 641

用opencv压缩图片

由于前段时间用手机拍照,发现图片太大,一张就差不多5M,传到电脑后太大了,不方便处理,所以写了这个用opencv来压缩一下。 下面是具体代码,代码较简单,大家一看就懂。   #coding = utf-8 import cv2 import os import math def get_doc_size(path): try: size = os.path.get...

congcong7267的博客 1万+

基于springboot生鲜食品订购系统的设计与实现

近年来互联网络的迅猛发展和电子终端设备的普及,赋予了各行业充足的发展空间。微信小程序的O2O生鲜食品订购相比于传统信息技术,时效性是它最大的特色,已经在电子娱乐、经济等中发挥着举足轻重的作用。短时间内迅速扩大了线上管理系统的规模。尽管O2O生鲜食品订购已经有了很大程度的发展,但在微信小程序的O2O生鲜食品订购领域上却少有建设。

1024

基于大模型与知识图谱的对话引导意图澄清系统技术解析

本文提出了一种基于知识图谱与大语言模型的意图澄清系统,旨在解决传统RAG模型在跨文档推理和主动澄清方面的不足。系统通过知识图谱驱动的多跳推理机制和链式思维引导的对话流程,实现了动态信息补全和意图澄清。核心创新包括:1)知识图谱构建与节点选择算法;2)标签探索策略与原子事实提取方法;3)主动澄清引擎的工作流程。实验表明,该系统能有效提升复杂查询的准确率,在医疗、金融等领域实现精准交互。关键代码展示了节点选择、标签匹配和事实提取等核心组件的实现细节。

414

在React中利用compressorjs对图片进行压缩上传

在React中对图片进行压缩上传 图片压缩需要用到插件 compressorjs, https://www.npmjs.com/package/compressorjs 需要注意的是这个插件是利用canvas对图片进行重绘,如果压缩太过的话,会导致一定程度上的图片失真。 首先创建input标签 <input id='age' type="file" ref='tw...

weixin_44517846的博客 2958

【STM32 CubeMX】I2C中断方式与DMA方式

在STM32 CubeMX环境中,I2C(Inter-Integrated Circuit)通信协议的实现可以采用中断方式或DMA(Direct Memory Access)方式。中断方式通过触发中断来处理数据传输,而DMA方式则利用直接内存访问技术来实现数据传输,减轻了CPU的负担。在选择I2C通信方式时,开发者需要根据具体的应用需求和性能要求来选择合适的方式。STM32 CubeMX提供了图形化配置工具,使得配置I2C通信方式变得更加便捷。

m0_62599305的博客 7744

vant组件中图片上传对图片进行压缩处理

1.vant组件进行图片上传需要借助 <van-uploader v-model.trim="item.fileList" :after-read="uploadImg" :before-read="beforeRead" accept="image/*" ...

小剑儿的博客 7799

《QEMU/KVM源码分析与应用》读书笔记1 —— 第1章 QEMU与KVM概述

《QEMU/KVM源码分析与应用》学习笔记1 —— 第一章 QEMU与KVM概述

phmatthaus的专栏 1984

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

vue删除图片同时删除本地文件_vue实现上传上删除压缩图片

import {Config} from '@/config.js'import {mapState} from 'vuex'import {LocalData, toast, WX} from '@/utils/common'import {FileUtil} from '@/utils/FileUtil'import {PayUtil} from '@/utils/PayUtil'import...

weixin_40007804的博客 218

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

用ndk实现android的图片压缩

最近在看了动脑学院的图片优化之后,感觉通过ndk来实现的压缩,压缩比例还是很好的 我们知道android的图片显示离不开bitmap,而在android开发中避免不了对图片的压缩处理,当然bitmap有自带的压缩方法,调用bitmap的compress方法就可以实现简单的压缩,但是这种压缩出来的图片从清晰度上来说,效果不是很好,原因在于这种压缩的底层处理是由google的skia图片处理引擎来...

HuiMengNiTian的专栏 1037

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

终极指南:5分钟掌握JavaScript图片压缩技巧 [特殊字符]✨

在Web开发中,图片优化是提升用户体验的关键环节。当用户上传大尺寸图片时,如何在不影响质量的前提下大幅减小文件体积?Compressor.js为您提供了完美的浏览器端JavaScript图片压缩解决方案。 ## 前端图像优化的痛点与突破 传统图片上传方案往往直接将原始文件发送到服务器,这不仅消耗大量带宽,还增加服务器存储压力。Compressor.js通过智能的客户端预处理,让图片压缩在前端完

gitblog_00631的博客 961

C#图片无损压缩

使用C#压缩图片 下列代码为使用byte字节数组压缩 注释的是使用文件路径 /// <summary> /// 压缩图片 /// </summary> /// <param name="buffer">图片数据</param> /// <param name="outPath">保存位置</param> /// <param name="flag"&

qq_44805293的博客 1570

(三)聚类KMeans讲解和图片压缩

本文讲解KMeans算法,主要分为原理讲解,代码实现以及用KMeans来实现图片压缩 原理讲解 1.KMeans目的 如果你拿到一堆数据,但是这堆数据没有特征或者说是标签,那么,你该如何来处理这批数据?聚类算法的目的就是处理这样的无监督问题,聚类就是把相似的东西聚到一起,因此衍生出了许多聚类算法,他们按照不同的聚类方式对数据进行分类,KMeans只是其中一种。 2.KMeans基本概念 簇:指定K...

Broke_Leaf的博客 1382

针对页面中返回大量图片和数据渲染导致渲染进程过慢

图片格式选择:根据图片的实际用途选择合适的图片格式,如WebP、JPEG XR等,这些格式在保持图片质量的同时,具有更小的体积。图片懒加载:实现图片的懒加载,即只有当图片进入可视区域时才进行加载,这样可以显著减少初始加载时的数据量,提升页面渲染速度。分页加载:对于大量数据的渲染,可以采用分页加载的方式,每次只渲染用户当前需要查看的数据,减少单次请求和渲染的数据量。图片压缩:使用专业的图片压缩工具对图片进行压缩,减少图片的体积,从而加快图片的加载速度。二、优化数据处理和渲染。四、优化代码和资源压缩。

2201_75673611的博客 742

lcd屏幕显示bmp、jpg图片

文章目录BMP图片显示:jpeg压缩过程 RGB: ARGB 32bit 4Byte A:【24-31】 R:【16-23】 G:【8-15】 B:【0-7】 图片显示 显示思路: (1)打开液晶屏(open),进行内存映射(mmap) (2)打开图片,读取颜色数据 (3)将读取到的颜色数据映射到液晶屏 (4)关闭图片文件,液晶屏,解除内存映射 BMP图片显示: 没有经过压缩的二进制位图文件,文件较大,获取颜色数据方便 一张800*480的bmp格式的图片 8004803 = 1152000Byt

qq_45698138的博客 5740

【福利】对象存储 COS 数据处理双十二活动开始了

关注我们,不错过云存储新动态!它来了!它来了!!它在双十二来了!!!对象存储 COS 全新推出“数据处理专场”双十二活动12月1号-12月31号全场资源包4.5折起更有1元秒杀活动等你来...

云存储小天使的博客 413

【base64】JavaScript&uniapp 将图片转为base64并展示

【base64】JavaScript&uniapp 将图片转为base64并展示

阿晨的博客 2741

vue中使用ali-oss上传图片,并使用EXIF解决拍照后位置错乱的问题

/** * Created on 2019-8-9 */ import OSS from 'ali-oss' import { getOssUploadRole } from '@/api/wallet' import { Toast, Dialog } from 'vant' import { ossUrl } from '@/config' import EXIF from 'exif-...

qq_37942845的博客 446

【skLearn练习】KMeans矢量量化应用 ---- 压缩图片

文章目录一、KMeans矢量量化概念二、图片的探索① 导库② 实例化导入颐和园图片③ 可视化图片三、图片矢量量化① 导包② 预处理图像数据,适应SKlearn聚合③ KMeans聚类④ 质心替换样本,实现矢量量化⑤ 随机的矢量量化⑥ 可视化 一、KMeans矢量量化概念 百度百科: k-means聚类最重要的应用之一就是非结构数据(图像、声音)上的矢量量化(VQ),所谓的矢量量化就是将数据进行压缩。 非结构化数据往往会占用很大的数据空间,在保证数据质量的同时,尽可能的矢量量化数据的大小,或者是简..

懂得一千零一种,赋予你失败的方法! 1399
上一篇: 数据处理--图片像素点聚类
下一篇: 数据分析--时间问题与降维
PyRookie
博客等级 码龄8年 89粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值