1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > k均值聚类图像分割matlab代码_用K均值聚类法为人类拍摄的首张黑洞照片进行分割...

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

时间:2023-09-02 09:17:53

相关推荐

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

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

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

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

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

下面是黑洞的原图:

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

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

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

import numpy as npfrom PIL import Imagefrom 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)))

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

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。