网站首页 > 技术文章 正文
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神经网络训练
- 1507℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 510℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 487℃MySQL service启动脚本浅析(r12笔记第59天)
- 467℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 465℃启用MySQL查询缓存(mysql8.0查询缓存)
- 445℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 424℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 421℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)