Kmeanns图片压缩
from sklearn.datasets import load_sample_image#先导入数据包
china = load_sample_image("china.jpg")#从包中拿出china那那张图
print(china.shape)
china
array([[[174, 201, 231],
[174, 201, 231],
[174, 201, 231],
...,
[250, 251, 255],
[250, 251, 255],
[250, 251, 255]], [[172, 199, 229],
[173, 200, 230],
[173, 200, 230],
...,
[251, 252, 255],
[251, 252, 255],
[251, 252, 255]], [[174, 201, 231],
[174, 201, 231],
[174, 201, 231],
...,
[252, 253, 255],
[252, 253, 255],
[252, 253, 255]], ..., [[ 88, 80, 7],
[147, 138, 69],
[122, 116, 38],
...,
[ 39, 42, 33],
[ 8, 14, 2],
[ 6, 12, 0]], [[122, 112, 41],
[129, 120, 53],
[118, 112, 36],
...,
[ 9, 12, 3],
[ 9, 15, 3],
[ 16, 24, 9]], [[116, 103, 35],
[104, 93, 31],
[108, 102, 28],
...,
[ 43, 49, 39],
[ 13, 21, 6],
[ 15, 24, 7]]], dtype=uint8)
import matplotlib.pyplot as plt#导入画图的包
plt.imshow(china)#imshow函数
plt.show()#显示
plt.imshow(china[:,:,0])#所有行,列,按第一的颜色排列
plt.show()
plt.imshow(china[:,:,0],plt.cm.gray)#添加灰色
plt.show()
import sys
sys.getsizeof(china)
819968
image=china[::3,::3]#将间隔扩大为3*3倍
image.shape
plt.imshow(image)
plt.show()
x=image.reshape(-1,3)
from sklearn.cluster import KMeans#导入kmeans包
import numpy as np
model=KMeans(n_clusters=64)#设中心点为64
b=model.fit_predict(x)#预测处理
a=model.cluster_centers_#求均值找中心点
new_image=a[b]#靠近的聚合
new_image=new_image.reshape(image.shape)
plt.imshow(new_image.astype(np.uint8))#改成int
plt.show()
import sys
import matplotlib.image as img
sys.getsizeof(new_image)
128
#图片保存
import matplotlib.image as img
img.imsave('e://01.jpg',china)
sd=img.imread('e://01.jpg')#导入图片数据
sd.shape
plt.imshow(sd)
plt.show()
pb=8/20
pa=1/2
pba=7/10
pab=(7/10*1/2)/(8/20)
print(pab)
cc=1-pab
print(cc)
Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 02:47:15) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
================== RESTART: C:/Users/lenovo/Desktop/sff.py ==================
>>>
================== RESTART: C:/Users/lenovo/Desktop/sff.py ==================
0.8749999999999999
>>>
================== RESTART: C:/Users/lenovo/Desktop/sff.py ==================
0.8749999999999999
0.1250000000000001
>>>
Kmeanns图片压缩的更多相关文章
- Golang 编写的图片压缩程序,质量、尺寸压缩,批量、单张压缩
目录: 前序 效果图 简介 全部代码 前序: 接触 golang 不久,一直是边学边做,边总结,深深感到这门语言的魅力,等下要跟大家分享是最近项目 服务端 用到的图片压缩程序,我单独分离了出来,做成了 ...
- 三款不错的图片压缩上传插件(webuploader+localResizeIMG4+LUploader)
涉及到网页图片的交互,少不了图片的压缩上传,相关的插件有很多,相信大家都有用过,这里我就推荐三款,至于好处就仁者见仁喽: 1.名气最高的WebUploader,由Baidu FEX 团队开发,以H5为 ...
- 前端构建工具之gulp(一)「图片压缩」
前端构建工具之gulp(一)「图片压缩」 已经很久没有写过博客了,现下终于事情少了,开始写博吧 今天网站要做一些优化:图片压缩,资源合并等 以前一直使用百度的FIS工具,但是FIS还没有提供图片压缩的 ...
- gulp图片压缩
gulp图片压缩 网页性能优化,通常要处理图片,尤其图片量大的时候,更需要工具来批量处理,这里使用gulp,做个简单总结 image-resize压缩尺寸 var gulp = require('gu ...
- Android 图片压缩、照片选择、裁剪,上传、一整套图片解决方案
1.Android一整套图片解决方案 http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650820998&idx=1& ...
- Java中图片压缩处理
原文http://cuisuqiang.iteye.com/blog/2045855 整理文档,搜刮出一个Java做图片压缩的代码,稍微整理精简一下做下分享. 首先,要压缩的图片格式不能说动态图片,你 ...
- android 图片压缩
引用:http://104zz.iteye.com/blog/1694762 第一:我们先看下质量压缩方法: private Bitmap compressImage(Bitmap image) { ...
- HTML5 CANVAS 实现图片压缩和裁切
原文地址:http://leonshi.com/2015/10/31/html5-canvas-image-compress-crop/?utm_source=tuicool&utm_medi ...
- C# 图片压缩
/// <summary> /// 图片压缩方法 /// </summary> /// <param name="sF ...
随机推荐
- Django 模本(Template--for--csrf--if--filter--simple_tag模版继承等)
前提 关于html寻找路线: template 如果在各个APP中存在, Django 会优先找全局template 文件下的html文件,如果全局下的template文件没有相关的html Dja ...
- Iview Modal 点击确定就关闭,我想禁止关闭该怎么办呢?
网上各种loading,不推荐.用下面的方法直接就解决了 <div slot="footer"> <Button type="text" si ...
- Cannot forward to error page for request ......
今天现场报了以下问题: Cannot forward to error page for request [/order/search] as the response has already bee ...
- 基于STM32F429+HAL库编写的定时器主从门控模式级联输出固定个数PWM脉冲的程序
硬件设备 42步进电机,步进电机驱动器,正点原子F429开发板 开发软件 keil5,Cube 综述 一般要精准的控制电机,就要控制单片机的引脚输出指定个数的PWM波,有多种可实现的方法 ...
- wsl ubuntu 配置c++环境
1.sudo apt-get install build-essential 更新 配置源 2.sudo apt install gcc-8 3.sudo apt install g++-8 cd ...
- 微信小程序---转发分享功能
1. 转发---onShareAppMessage 2.不带参数 //用户点击右上角分享 onShareAppMessage: function (res) { return { title: 'xx ...
- js----点击事件三种方法
在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 (1)注意函数名没有双引号. ...
- mapreduce 内存分配
稍微有点mapreduce使用经验的同学肯定对OOM不陌生,对的,我目前在mapReduce里面遇到的最多的报错也是内存分配出错,所以看到好多hadoop执行脚本里面有好多关于内存的参数,虽然是知道和 ...
- linux相关命令整理
三剑客 awk grep sed
- [LINQ] group by 与连接查询
//副表 树种-品名-折材率 汇总 var listNeed = (from t in dtNeed.AsEnumerable() group t by new { t1 = t.Field<s ...