图像分割利用KMeans生成灰度图
1 import numpy as np
2 import PIL.Image as image
3 from sklearn.cluster import KMeans
4
5 def loadData(filePath):
6 f = open(filePath,'rb')#以二进制形式打开文件
7 data = []
8 img = image.open(f)#以列表形式返回图片像素值
9 m,n = img.size#获取图片大小
10 for i in range(m):#将每个像素点RGB处理到0-1
11 for j in range(n):#范围内并存放进data
12 x,y,z = img.getpixel((i,j))
13 data.append([x/256.0,y/256.0,z/256.0])
14 f.close()
15 return np.mat(data),m,n#以矩阵形式返回data,以及图片大小m,n
16
17 imgData,row,col = loadData('kmeans/bull.jpg')#加载数据
18 label = KMeans(n_clusters=4).fit_predict(imgData)#获得每个像素所属类别
19 label = label.reshape([row,col])
20 pic_new = image.new("L", (row, col))#创建一个新的灰度图片保存聚类后的结果
21 for i in range(row):#根据所属聚类类别向图片添加灰度值
22 for j in range(col):
23 pic_new.putpixel((i,j), int(256/(label[i][j]+1)))
24 pic_new.save("result-bull-4.jpg", "JPEG")#以JPEG格式保存图像
图像分割利用KMeans生成灰度图的更多相关文章
- Qt生成灰度图(转载)
Qt生成灰度图(转载) 项目中用到大量基础图像处理知识,其中灰度图的生成是很重要的一环. 先补充一些基础知识: ------------------------------------------ ...
- 利用JFreeChart生成时序图(6) (转自 JSP开发技术大全)
利用JFreeChart生成时序图(6) (转自 JSP开发技术大全) 14.6 利用JFreeChart生成时序图 通过JFreeChart插件只能生成普通效果的时序图,利用工厂类ChartFact ...
- 利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全)
利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全) 14.5 利用JFreeChart生成区域图 通过JFreeChart插件只能生成普通效果的区域图,利用工厂类ChartFac ...
- 利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全)
利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全) 14.4 利用JFreeChart生成折线图 通过JFreeChart插件,既可以生成普通效果的折线图,也可以生成3D效果的折 ...
- opencv生成灰度图并保存
#include <opencv2/opencv.hpp>#include <iostream> using namespace cv;using namespace std; ...
- 利用powerdesigner反向数据库结构,生成ER图
参考月下狼~图腾~:<利用powerdesigner反向数据库结构,生成ER图> https://www.zybuluo.com/Jpz/note/123582 首先新建一个"P ...
- unity 读取灰度图生成按高程分层设色地形模型
准备灰度图 1.高程按比例对应hue色相(hsv)生成mesh效果 o.color = float4(hsv2rgb(float3(v.vertex.y/100.0, 0.5, 0.75)), 1.0 ...
- unity读取灰度图生成等值线图
准备灰度图 grayTest.png,放置于Assets下StreamingAssets文件夹中. 在场景中添加RawImage用于显示最后的等值线图. 生成等值线的过程,使用Marching ...
- unity读取灰度图生成三维地形mesh
准备灰度图 IGray.png及草地贴图 IGrass.jpg ,放入Assets下StreamingAssets文件夹中. 创建空材质,用作参数传入脚本. 脚本如下,挂载并传入材质球即可 ...
随机推荐
- 安装SQL Server 2014(Windows Server 2016)
SQL Server 2014下载地址: 链接:https://pan.baidu.com/s/1FBkdCBeqaIcLMQnUmtfPwg 提取码:6y76 1.使用解压工具解压“cn_sq ...
- Tomcat 和 JVM 性能调优总结
Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...
- CRT中国剩余定理 & Lucas卢卡斯定理
数论_CRT(中国剩余定理)& Lucas (卢卡斯定理) 前言 又是一脸懵逼的一天. 正文 按照道理来说,我们应该先做一个介绍. 中国剩余定理 中国剩余定理,Chinese Remainde ...
- S3C2440_时钟和电源管理_阅读开发手册记录
1.如何进入sleep mode 1)要把一些重要的数据存放在状态寄存器里,状态寄存器里的数据在掉电后不会丢失. 2)要设置好唤醒源 3)配置相关寄存器,使其进入sleep mode 2.如何从sle ...
- C:防止头文件重复包含
当一个项目比较大时,往往都是分文件,这时候有可能不小心把同一个头文件 include 多次,或者头文件嵌套包含. 方法一: #ifndef __SOMEFILE_H__ #define __SOMEF ...
- 网络辅助北斗/GPS位置服务平台业务量突破10亿次
导读 北斗卫星导航系统日渐成熟,相关服务也在逐步丰富.深入.为了推动北斗定位功能在手机中的普及,中国信息通信研究院2017年就发布了网络辅助北斗/GPS位置服务平台,支持95%以上商用芯片及终端的北斗 ...
- winform Anchor和Dock属性
在设计窗体时,这两个属性特别有用,如果用户认为改变窗口的大小并不容易,应确保窗口看起来不显得很乱,并编写许多代码行来达到这个目的,许多程序解决这个问题是地,都是禁止给窗口重新设置大小,这显然是解决问题 ...
- 解决 IDEA 下 struts.xml 中 extends="struts-default" 报红的问题
现象 在IDEA中配置struts.xml时 extends="struts-default" 报红,配置拦截器时属性无预选项提示,也爆红. struts.xml本身的配置并没有错 ...
- 【JavaScript】关于eval("("+result+")")的认识
起因是做现项目时,参用很久之前一个项目的代码,少了一行eval("("+result+")"):控制台始终运行不出结果 大致意思是:eval方法是将json字符 ...
- accordion(折叠面板)的使用
一.前言: 折叠面板(accordion)允许使用多面板(panel),同时显示一个或多个面板(panel).每个面板(panel)都有展开和折叠的内建支持.点击面板(panel)头部可展开或折叠面板 ...