网站首页 > 技术文章 正文
10.5 现有1元、5元、10元、20元、50元、100元共6种面额的纸币彩色图像,请计算R、G、B三个颜色通道的一阶、二阶、三阶颜色矩,共9个特征指标数据,记为自变量X,同时构造纸币面额标签数据集,记为Y。
[知识点及要求]图像颜色特征提取
示例代码如下:
# -*- coding: utf-8 -*-
from PIL import Image
import numpy as np
import os
path='图片'
d=os.listdir(path) #读取 图片文件夹下所有图像文件名
X=np.zeros((len(d),9)) #预定义自变量,即9个颜色矩阵特征指标
Y=np.zeros(len(d)) #预定义因变量,即人民币面额值
for i in range(len(d)):
img=Image.open(path+'\\'+d[i]) #读取第i张图片
img=img.resize((60,60)) #更改大小,统一为60*60
im=img.split() #分离RGBA颜色通道
R=np.array(im[0]) #R通道
G=np.array(im[1]) #G通道
B=np.array(im[2]) #B通道
#R、G、B一阶颜色矩
r1=np.mean(R)
g1=np.mean(G)
b1=np.mean(B)
#R、G、B二阶颜色矩
r2=np.std(R)
g2=np.std(G)
b2=np.std(B)
#R、G、B三阶颜色矩
a=np.mean(abs(R-R.mean())**3)
b=np.mean(abs(G-G.mean())**3)
c=np.mean(abs(B-B.mean())**3)
r3=a**(1./3)
g3=b**(1./3)
b3=c**(1./3)
#赋给预定义的自变量X
X[i,0]=r1
X[i,1]=g1
X[i,2]=b1
X[i,3]=r2
X[i,4]=g2
X[i,5]=b2
X[i,6]=r3
X[i,7]=g3
X[i,8]=b3
#从图片的文件名中,获取人民币面额值,构造因变量Y
png_name=d[i]
Y[i]=png_name.split("_")[0]
#按80%构建训练数据集,20%测试数据集
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(X,Y,test_size=0.2,random_state=4)
from sklearn.svm import SVC
clf=SVC(class_weight='balanced')#类标签平衡策略
clf.fit(x_train,y_train)
y1=clf.predict(x_test)
r=y1-y_test
v=len(r[r==0])/len(y1)#预测值与真实值相减为0,即预测准确,统计其准确率
print('准确率为:',v)
#保存模型
import joblib
joblib.dump(clf,'clf.pkl')
部分运行结果如下图:
更多内容请见网易云课堂Python大数据学习吧:
https://study.163.com/provider/480000002230206/index.htm?share=2&shareId=480000002230206
猜你喜欢
- 2024-11-24 7000字,Python分析:泰坦尼克号中女生更容易生还?
- 2024-11-24 SVM 算法 和 梅尔倒谱系数 结合使用噪音检测的应用
- 2024-11-24 scikit-learn的5大新功能
- 2024-11-24 机器学习集成方法:Bagging, Boosting, Stacking, Voting, Blending
- 2024-11-24 Kaggle练习赛---Titanic的分析与整理
- 2024-11-24 超参数自动调参库介绍
- 2024-11-24 支持向量机SVM(Support Vector Machine) Ⅰ原创 Yu
- 2024-11-24 集成学习小介
- 2024-11-24 如何利用手机远训练机器学习模型
- 2024-11-24 使用SVC支持向量机算法来进行人脸识别的CNN神经网络训练
- 最近发表
-
- 使用Knative部署基于Spring Native的微服务
- 阿里p7大佬首次分享Spring Cloud学习笔记,带你从0搭建微服务
- ElasticSearch进阶篇之搞定在SpringBoot项目中的实战应用
- SpringCloud微服务架构实战:类目管理微服务开发
- SpringBoot+SpringCloud题目整理
- 《github精选系列》——SpringBoot 全家桶
- Springboot2.0学习2 超详细创建restful服务步骤
- SpringCloud系列:多模块聚合工程基本环境搭建「1」
- Spring Cloud Consul快速入门Demo
- Spring Cloud Contract快速入门Demo
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)