基于水色图象的水质分类问题(傻瓜式工具TPOT)

基于水色图象的水质分类问题(傻瓜式工具TPOT)

这个东西,我看了很多人也做过,也是一个经典的案例,大部分都用的SVM支持向量机或者是决策树要么就是随机森林,这里我看数据量不大,我突然觉得好像TPOT这个东西可以用来玩一玩。

图片处理的流程(基于颜色矩的图片特征提取)

1.将图片的文件批量导入到工作环境中(此部分需要用到循环导数据的方法)
2.将图片进行裁剪,提取出最主要的部分(因为原始图片有许多的干扰部分,可能会干扰后续的处理)
3.计算图片的RGB颜色通道的1,2,3阶矩
4.处理得到的1,2,3阶矩的数据,得到一个数据框
5.建立合适的模型
6.评估模型,修改模型

1、看一眼数据

网盘链接
6o85
在这里插入图片描述
都是图片,而且图片的噪音还很大。嘶~

2、对图片的处理,特征的提取

先导入数据吧:

import os
from PIL import Image
import numpy as np
import pandas as pd
name=os.listdir('C:\\Users\\dell\\Desktop\\images')###得到文件夹下的图片名字
label=[]
image=[]
for i in range(len(name)):
    a=name[i].split('_')
    label.append(a[0])###因为观察到图片的名字已经分好类别了,所以将其用一个列表形式存储起来,以便于后面和表   
    image.append('C:\\Users\\dell\\Desktop\\images\\'+name[i])###将每个图片的路径得到

对图片进行剪裁,这里是选用图片中间100*100的区域进行裁剪,结果如下:
在这里插入图片描述
至于颜色距的计算,大家可以百度,其实简单来说,一张彩色图片是每一个像素组成的,每一个元素都有(R,G,B)这样的RGB值然后,颜色有3个阶矩,分别是R,G,B通道的每一个通道的像素值的均值,方差,梯度,也就是说一共有9个值,R通道3个颜色矩,G3个,B也3个。也就是一张图上的每一个像素都是类似于(111,111,222)、(541,568,214)…这样的像素值,然后进行计算就可以了。具体代码如下:

data=pd.DataFrame(np.zeros((len(image),10)),
                  columns=['类别','R通道一阶矩','G通道一阶矩','B通道一阶矩','R通道二阶矩','G通道二阶矩','B通道二阶矩','R通道三阶矩','G通道三阶矩','B通道三阶矩'])
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值