k均值聚类图像分割matlab代码_用K均值聚类法为人类拍摄的首张黑洞照片进行分割...

众所周知,人类最近拍摄了首张黑洞照片。网友们纷纷表示,这明明就是一个甜甜圈嘛!以前以为黑洞是这个世界上最最高冷的存在,而此刻突然现出真身,形象却是如此的人畜无害!不但如此,还勾起了网友的食欲!简直是罪大恶极,不可饶恕,诱人发胖!

耳边又响起火箭少女令人头皮发麻的魔性歌声,“拜拜甜甜圈,珍珠奶茶方便面,火锅米饭大盘鸡”!

明明说好的“燃烧我的卡路里”,结果却成了“加油我的咀嚼肌”!

当你张开嘴的时候,不需要多说什么,吃,就对了!

下面是黑洞的原图:

4b90f9449e61900574919b74ae527f05.png

可以看到,原图比较模糊,界限也是非常的不清晰。在人们已经习惯了看高清大图的4G时代,有没有办法让这张图片变得更清晰呢?

当然是可以的,就是用K均值聚类法,对图像进行分类,这样的话,每一类之间的界限就会是非常清晰的。

代码也很简单,首先引入需要用到的包:

import numpy as np
from PIL import Image
from sklearn.cluster import KMeans

然后读取数据,进行训练:

img_data,row,col=load_data('demo.jpg')
#3代表分成3类,通过聚类,最终生成三类
label=KMeans(n_clusters=3).fit_predict(img_data)

然后就是新建一个灰色图像,对图像进行赋值操作,取值范围是0-255,如果分成3类的话,大概这三类的灰度值分别为255、128、85。代码如下:

pic_new=Image.new("L",(row,col))
for i in range(row):
    for j in range(col):
    	#为每个像素的灰度值进行赋值
        pic_new.putpixel((i,j),int(255/(label[i][j]+1)))

分成三类的话,最终结果是这样的:

2f7444ee94c5fe4ba8c565db0762f6eb.png

分成四类的话,最终的结果是这样的:

5a21829a3a6c71ae96711e91a5defaf3.png

分成五类的话,最终的结果是这样的:

56868dddd9ca8525fcf8d97da073e5fc.png

经过这样的变换之后,终于看起来不那么像甜甜圈了,而且看起来终于有一点点高冷了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值