版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、背景有经验的渔业生产的从业者可以通过观察水质变化调控水质,来维持养殖水体生态系统中的浮游植物、微生物、浮游动物等的动态平衡,然而这些判断是通过经验和肉眼观察得出的,存在主观性引起的观察性偏差,使观察结果的可比性、可重复性降低,不易推广使用。数字图像处理技术为计算机监控技术在水产养殖业的应用提供了更大的空间。在水质在线监测方面,数字图像处理技术是基于计算机视觉的,以专家经验为基础,对水色进行优劣分级,实现对水色的准确快速判别。目标利用给出的已经分类的数据,利用图像处理技术实现水质自动评价。分析通过拍摄得到的图像数据维度太大,不易分析,需要提取图像的特征,提取反映图像本质的关键指标,以达到自动进行
2、图像识别或者分类的目的。显然,图像特征提取是图像识别和分类的关键步骤,提取的结果直接关系到图像识别和分类的好坏。图像特征主要包括颜色特征、纹理特征、形状特征和空间关系特征等。与几何特征相比,颜色特征更为稳健,对物体的大小和方向不敏感,表现出较强的鲁棒性。由于本案例中的水色图像是均匀的,所以主要关注颜色特征。颜色特征是一种全局特征,描述图像或者图像对应景物的表明性质。一般颜色特征是基于像素点的特征,所以图像区域的像素点都有自己的贡献。在利用图像颜色特征进行分析的硏究中,实现方法上已经有啦很多硏究成果,主要采用直方图法和颜色矩方法。其中直方图法反映颜色分布,即哪些颜色及其出现概率,优点是适合描述难
3、以自动分割的图像和不需要考虑物体空间位置的图像;缺点是无法描述颜色的局部分布及每种色彩所处的空间位置,也就是无法描述图像中的某一具体的对象和物体。其中颜色矩法的数字基础为图像中的任何颜色分布均可以用它道德矩来表示。根据概率论,随机变量的概率分布可以由其各阶矩唯一描述和表示。一个图像的颜色分布完全可以看做是一种概率分布,图像就可以由各阶矩描述。颜色矩包含各个颜色的一阶矩、二阶矩和三阶矩,一个RGB图像有R、G、B三个通道,共9个分量。直方图法产生的特征维数一般会大于颜色矩产生的,为了避免过多变量干扰分类结果,使用颜色矩法。数据预处理图像切割由于图像较大,我们提取每张图片最中间的100 x100像
4、素构成子图象集。特征提取我们采用颜色矩来提取水样特征。这种方法的数学基础在于图像中任何的颜色分布均可以用它的矩来表示。此外,由于颜色分布信息主要集中在低阶矩中,因此仅采用颜色的一阶矩(mean)、二阶矩(variance)和三阶矩(skewness)就足以表达图像的颜色分布。与颜色直方图相比,该方法的另一个好处在于无需对特征进行向量化。因此,图像的颜色矩一共只需要9个分量(3个颜色分量,每个分量上3个低阶矩),与其他的颜色特征相比是非常简洁的。在实际应用中为避免低次矩较弱的分辨能力,颜色矩常和其它特征结合使用,而且一般在使用其它特征前起到过滤缩小范围(narrowdown)的作用。尽23阶颇色
5、拒均值.反睦圍蟻明暗程度二阶颇色矩一标准差反映图像颇色分布范围三阶颇色距方差,反映图像颇色分布对称性其中Ei是第i个颜色通道的一阶颜色矩,对于RGB颜色空间的图像,i=1,2,3,pij是第i个像素点的第j个颜色通道的颜色值。在颜色矩的提取中,提取每个文件名中的类别和序号,同时针对所有图片进行同样操作。#导入库文件#importmatplotlib.pyplotaspltimportmatplotlib.imageasmpimgimportnumpyasnpimportosimportpandasaspd#查看#img=mpimg.imread(eeeee/chapter9/chapter9/
6、test/data/images/1_1.jpg)#读取一张图片#l,w,t=img.shape#提取长,宽,通道数#print(l,w,t)#plt.imshow(img)#寻找中心100 x100像素点#l_max=img.shape0/2+50#l_min=img.shape0/2-50#w_max=img.shape1/2+50#w_min=img.shape1/2-50#计算颜色矩特征defimg2vector(filename):returnvect=np.zeros(1,9)fr=mpimg.imread(filename)l_max=fr.shape0/2+50l_min=fr
7、.shape0/2-50w_max=fr.shape1/2+50w_min=fr.shape1/2-50water=frl_min:l_max,w_min:w_max,:.reshape(1,10000,3)foriinrange(3):this=water:,:,i/255.printthisreturnvect0,i=np.mean(this)#0,1,2存储一阶颜色矩returnvect0,3+i=np.sqrt(np.mean(np.square(this-retumvect0,i)#3,4,5存储二阶颜色矩returnvect0,6+i=np.cbrt(np.mean(np.powe
8、r(this-retumvect0,i,3)#6,7,8存储三阶颜色矩printreturnvectreturnreturnvect#计算每个图片的特征trainfilelist=os.listdir(eeeee/chapter9/chapter9/test/data/images)#读取目录下文件列表m=len(trainfilelist)#计算文件数目labels=np.zeros(1,m)train=np.zeros(1,m)#trainingMat=#print(trainfilelist)trainingMat=np.zeros(m,9)foriinrange(m):filename
9、str=trainfilelisti#获取当前文件名,例1_1.jpgfilestr=filenamestr.split(.)O#按照划分,取前一部分classnumstr=int(filestr.split(_)0)#按照一划分,后一部分为该类图片中的序列picture_num=int(filestr.split(_)1)labels0,i=classnumstr#前一部分为该图片的标签train0,i=picture_numtrainingMati,:=img2vector(eeeee/chapter9/chapter9/test/data/images/%s%filenamestr)#构
10、成数组#保存d=np.concatenate(labels.T,train.T,trainingMat),axis=1)#连接数组dataframe=pd.DataFrame(d,columns=label,num,R_1,G_1,B_2,R_2,G_2,B_2,R_3,G_3:B_3)dataframe.to_csv(eeeee/chapter9/chapter9/test/moment.csv,header=None,index=None)#保存文件#把数据分为两部分:训练数据、测试数据#读入数据Data-read.csv(./data/moment.csv)#数据命名colnames(D
11、ata)-c(class,id,R1,G1,B1,R2,G2,B2,R3,G3,B3)#数据分割set.seed(1234)#设置随机种子#定义序列ind,随机抽取1和2,1的个数占80%,2的个数占20%ind-sample(2,nrow(Data),replace=TRUE,prob=c(0.8,0.2)trainData-Dataind=1,#训练数据testData-Dataind=2,#测试数据#数据存储write.csv(trainData,./tmp/trainData.csv,s=FALSE)write.csv(testData,./tmp/testData.c
12、sv,s=FALSE)#读取数据trainData-read.csv(./data/trainData.csv)testData-read.csv(./data/testData.csv)#将class列转换为factor类型trainData-transform(trainData,class=as.factor(class)testData-transform(testData,class=as.factor(class)#支持向量机分类模型构建library(e1071)#加载e1071包#利用svm建立支持向量机分类模型svm.model-svm(class.,trai
13、nData,-2)summary(svm.model)#建立混淆矩阵confusion-table(trainData$class,predict(svm.model,trainData,type=class)accuracy-sum(diag(confusion)*100/sum(confusion)#保存输出结果output_trainData-cbind(trainData,predict(svm.model,trainData,type=class)colnames(output_trainData)-c(class,id,R1,G1,B1,R2,G2,B2,R3,G3,B3,OUTP
14、UT)write.csv(output_trainData,./tmp/output_trainData.csv,s=FALSE)#保存支持向量机模型save(svm.model,file=./tmp/svm.model.RData)#读取数据testData-read.csv(./data/testData.csv)#读取模型load(./tmp/svm.model.RData)#建立混淆矩阵confusion-table(testData$class,predict(svm.model,testData,type=class)accuracy-sum(diag(confusion)*100/sum(conf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建设工程风险控制与合同管理协议
- 线上线下安检培训协议
- 咖啡烘焙产业链合作合同
- 酒道馆会员卡办理及使用协议
- 跨国公司企业社会责任履行协议
- 2026年武林外传李大嘴测试题及答案
- 2026年子产为政 检测试题及答案
- 2026年匆匆课文的测试题及答案
- 2026年急救常识测试题及答案
- 2026年软件 极限测试题及答案
- 中华诗词大赛备赛资料(4-6年级)
- 白酒企业采购方案
- 跌倒坠床压力性损失非计划拔管疼痛VTE风险评估
- 小型水库土石坝主要安全隐患处置技术导则
- 矿灯安全使用管理规范
- JTG C10-2007 公路勘测规范
- 06 主变及附属设备安装施工方案
- 中学教职工工作失职失误责任追究制度
- 拉线的制作详细分析课件
- 2023年医学影像学期末复习-生理学(本科医学影像学)历年重点考题集锦带有答案
- HW10-变速箱培训培训课件
评论
0/150
提交评论