高光谱成像技术驱动的水蜜桃果实病害检测【附代码】

发布时间:2026/5/28 0:19:12

高光谱成像技术驱动的水蜜桃果实病害检测【附代码】 ✨ 长期致力于桃果实、采后病害、高光谱、光学特性、品质指标研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1真菌菌落生长的高光谱时序建模与分类在马铃薯葡萄糖琼脂平板上分别培养灰葡萄孢霉、匍枝根霉和炭疽菌每隔6小时采集一次高光谱图像波长400-1000nm光谱分辨率2.8nm。提取菌落生长区域的光谱曲线采用三种特征提取方法全波段平均光谱、峰位716nm单波段值、以及主成分分析的前三个主成分得分。利用这些特征构建真菌生长动力学模型选择修正的Gompertz函数拟合模型参数通过最小二乘估计。对于灰葡萄孢霉全波段光谱建立的模型R20.982均方根误差0.023单波段716nm的R20.903RMSE0.156主成分得分的R20.965RMSE0.048。三种菌的模型决定系数均在0.89以上。同时采用偏最小二乘判别分析对培养36h的样本分类输入为全光谱420个波段潜变量个数设为12。PLS-DA模型对三种菌和空白对照的区分准确率达到97.5%交叉验证误差0.025。混淆矩阵显示灰葡萄孢霉和匍枝根霉之间误判率仅2%炭疽菌误判率1%。表明高光谱能够有效模拟真菌生长动力学并进行种类识别。2染病桃果实光谱与图像特征融合检测将三种病原菌分别接种到水蜜桃表面在20℃、85%湿度环境下培养分别在轻微腐烂菌斑直径5mm、一般腐烂5-15mm和严重腐烂15mm三个阶段采集高光谱数据。首先对每个样本提取420个波段的光谱反射率同时从主成分分析的第一主成分图像中提取38个图像特征包括颜色矩、灰度共生矩阵的对比度、相关性、能量和同质性以及灰度直方图的偏度和峰度。采用支持向量机RBF核惩罚系数C100gamma0.01和偏最小二乘判别分析分别建模。仅用光谱特征时SVM对三个腐烂阶段的总体分类准确率为91.2%PLS-DA为88.6%仅用图像特征时准确率分别为74.5%和71.3%将光谱和图像特征融合后SVM准确率提升至95.4%对早期轻微腐烂阶段的识别率达到88%而单光谱仅为79%。对于病害种类区分一般腐烂阶段融合特征区分灰霉病、软腐病和炭疽病的准确率为87%仍有一定混淆其中软腐病与炭疽病误判率12%可能因为两者在早期光谱特征相似。3光学特性参数与品质指标的相关性分析采用空间高光谱成像技术结合反演算法计算桃果实在感染过程中的吸收系数μa和约化散射系数μs。反演基于漫反射理论模型假设匹配折射率为1.4各向异性因子g0.9。在每个病斑区域选取30×30像素窗口拟合得到μa和μs。同时测量理化指标病斑直径、L*值、叶绿素含量SPAD值、维生素C2,6-二氯酚靛酚滴定法、可滴定酸NaOH滴定、可溶性糖蒽酮比色法、总酚Folin-Ciocalteu法和膜渗透率电导率仪。皮尔森相关性分析显示叶绿素含量与μa的相关系数为0.902p0.01与μs的相关系数为0.857维生素C与μa相关系数0.764可溶性糖与μa相关系数0.701可滴定酸与μa负相关-0.688总酚与μa负相关-0.723。膜渗透率与μs负相关-0.691表明细胞结构破坏导致散射降低。基于叶绿素含量与光谱特征采用连续投影算法从420个波段中筛选出特征波段617nm、675nm、818nm。利用这三个波段的比值617/675建立偏最小二乘回归预测叶绿素含量预测集R20.854RMSE2.3 SPAD单位。将波段比值作为特征输入逻辑回归模型对健康、轻度、中度、重度腐烂桃果实的分类准确率达到98.75%比全光谱模型降低了计算量75%。import numpy as np from sklearn.cross_decomposition import PLSRegression from sklearn.svm import SVC from scipy.spatial.distance import pdist def extract_spectral_features(hsi_cube): # hsi_cube: (rows, cols, bands) mean_spectrum np.mean(hsi_cube, axis(0,1)) pca_comp np.random.randn(hsi_cube.shape[2], 3) # 模拟PCA scores hsi_cube.reshape(-1, hsi_cube.shape[2]) pca_comp scores_img scores.reshape(hsi_cube.shape[0], hsi_cube.shape[1], 3) glcm_contrast np.std(scores_img[:,:,0]) # 简化 features np.concatenate([mean_spectrum, [glcm_contrast]]) return features def spa_selection(spectra, y, n_selected3): # 连续投影算法简化实现 n_samples, n_bands spectra.shape selected [np.argmax(np.var(spectra, axis0))] for _ in range(n_selected-1): remaining [i for i in range(n_bands) if i not in selected] projections [] for j in remaining: proj spectra[:, j] - spectra[:, selected[-1]] * (spectra[:, j] spectra[:, selected[-1]]) / (spectra[:, selected[-1]]**2).sum() projections.append(np.linalg.norm(proj)) selected.append(remaining[np.argmax(projections)]) return selected # 光学特性反演模拟漫反射理论 def inverse_optical_properties(reflectance, mu_a_initial0.1, mu_s_initial10.0): from scipy.optimize import minimize def model(x): mu_a, mu_s x[0], x[1] R_pred mu_a / (mu_a mu_s) # 简化模型 return (R_pred - reflectance)**2 res minimize(model, [mu_a_initial, mu_s_initial], bounds[(0.01,5),(1,50)]) return res.x ,

相关新闻