人工智能最近很火,比如拍照就能识别是什么物品,文字识别等等,今天我们就来讲一个简单的,几行代码实现识别
我们的算法是基于聚类聚类算法的图像分割技术
代码分三部分,第一部分导入相关库
将数组作为铭牌导入
进口PIL .图像作为图像
从sklearn.cluster导入聚类
第二部分导入图像文件并且以像素矩阵形式提供
极好的加载数据(文件路径):
f=打开(文件路径,' Rb ')
数据=[]
img=image.open(f)
m,n=img.size
对于在(m):范围内的我
对于(n):范围内的j
x,y,z=img.getpixel((i,j))
data.append([x/256.0,y/256.0,z/256.0])
f.close()
返回np.mat(数据),m,n
第三部分灰度图像处理公式(固定好的直接套用)
imgData,row,col=loadData('kmeans/bull.jpg ')
label=KMeans(n_clusters=4).fit_predict(imgData)
标签=标签。resform([行,列])
pic_new=image.new('L ',(行,列))
对于范围(行):中的我
对于情不自禁范围:
pic_new.putpixel((i,j),int(256/(label[i][j] 1)))
pic _ new。保存('结果-bull-4。jpg ',' JPEG ')
效果图
处理前
处理后
全部代码
将数组作为铭牌导入
进口PIL .图像作为图像
从sklearn.cluster导入聚类
极好的加载数据(文件路径):
f=打开(文件路径,' Rb ')
数据=[]
img=image.open(f)
m,n=img.size
对于在(m):范围内的我
对于(n):范围内的j
x,y,z=img.getpixel((i,j))
data.append([x/256.0,y/256.0,z/256.0])
f.close()
返回np.mat(数据),m,n
imgData,row,col=loadData('kmeans/bull.jpg ')
label=KMeans(n_clusters=4).fit_predict(imgData)
标签=标签。resform([行,列])
pic_new=image.new('L ',(行,列))
对于范围(行):中的我
对于情不自禁范围:
pic_new.putpixel((i,j),int(256/(label[i][j] 1)))
pic _ new。保存('结果-bull-4。jpg ',' JPEG ')