Python小白进阶4:基于Kmeans的图像分割
来源:互联网 发布:古墓丽影10优化补丁 编辑:程序博客网 时间:2024/05/18 06:26
在无监督学习的算法中,Kmeans算法是最常用的算法之一,今天用Kmeans来实现以下图像分割的功能。
图像分割:利用图像的灰度、颜色、纹理、形状等特征,把图像分成若干个互不重叠的区域,并使这些特征在同一区域内呈现相似性,在不同的区域之间存在明显的差异性。然后就可以将分割的图像中具有独特性质的区域提取出来用于不同的研究。图像分割技术已在实际生活中得到广泛的应用。例如:在机车检验领域,可以应用到轮毂裂纹图像的分割,及时发现裂纹,保证行车安全;在生物医学工程方面,对肝脏CT图像进行分割,为临床治疗和病理学研究提供帮助。
目标:利用K-means聚类算法对图像像素点颜色进行聚类实现简单的图像分割
输出:同一聚类中的点使用相同颜色标记,不同聚类颜色不同
import numpy as np #插入numpy库import PIL.Image as image #加载pil的包from sklearn.cluster import KMeans def loadData(filePath): f = open(filePath,'rb') #以二进制读取文件 data = [] img = image.open(f) #返回图片的像素值 m,n = img.size #返回图片的大小 for i in range(m): for j in range(n): x,y,z = img.getpixel((i,j)) data.append([x/256.0,y/256.0,z/256.0]) f.close() return np.mat(data),m,n imgData,row,col = loadData('kmeans/bull.jpg')label = KMeans(n_clusters=4).fit_predict(imgData) #图片聚成4类 label = label.reshape([row,col])pic_new = image.new("L", (row, col))for i in range(row): #根据所属类别给图片添加灰度 for j in range(col): pic_new.putpixel((i,j), int(256/(label[i][j]+1)))pic_new.save("result-bull-4.jpg", "JPEG")最后的结果以一张风机的图片为例:
原图
阅读全文
1 0
- Python小白进阶4:基于Kmeans的图像分割
- Kmeans 图像分割 by python
- 基于kmeans聚类算法的图像分割
- kmeans算法分割图像
- 基于libsvm的图像分割(小黄鸭子)
- OPENCV之Kmeans图像分割
- Python小白进阶二:如何通过sklearn库实现Kmeans算法
- Python机器学习应用 | 基于聚类的“图像分割”
- 基于图像分割的方法
- 基于纹理的分割图像
- 基于DL的图像分割
- 基于图的图像分割
- 基于图像分块的图像分割
- 图像分割—基于图的图像分割
- Kmeans++及字典学习和图像分割
- Kmeans聚类及图像分割
- OpenCV学习 kmeans实现图像分割
- java代码 kmeans算法实现 图像分割
- C/C++ 内存分配:malloc/calloc/realloc/free和new/delete
- HDUOJ 1027 Ignatius and the Princess II
- 一个移植十分方便的malloc函数族的实现
- CSU-ACM2017暑假训练9-区间DP G
- IO流(3)—字节流
- Python小白进阶4:基于Kmeans的图像分割
- php单元测试
- 源码包编译安装
- Linux设备驱动模型框架分析(三)——LDDM的实体bus_type、device和device_driver
- 【Node.js-3】express介绍、express-static处理静态文件请求、链式操作next()、中间件、cookie、session
- android studio常见bug
- HDOJ 6075-Questionnaire
- Tomcat多端口下发布及eclipse运行调试预研
- 多校联萌-YK的书架