zl程序教程

您现在的位置是:首页 >  其它

当前栏目

不同物体类型的图像特征提取分析

分析 类型 图像 不同 物体 特征提取
2023-09-11 14:15:33 时间

1.问题描述:

 将图像加载到matlab中,对数据进行统计分析和汇总,例如,可以从绘制每个图像的平均颜色值开始,可能是对同一类的图像进行分组。你也可以为不同的类制作颜色值的直方图。你看到任何证据表明不同的类可以被分类器分开吗?

2.部分程序:

 

clc;
clear;
close all;

%% 问题一
%step1:读取图片
[A01,A02,A03,A04,A05,A06,A07,A08,A09,A10,A11,A12,A13,A14,A15] = func_readimages_animals();
[B01,B02,B03,B04,B05,B06,B07,B08,B09,B10,B11,B12,B13,B14]     = func_readimages_fruit();
[C01,C02,C03,C04,C05,C06,C07,C08,C09,C10,C11,C12,C13]         = func_readimages_vegetables();
%step2:图片的平均颜色值
[RmeanA,GmeanA,BmeanA,averagesA] = func_mean_color_value_A(A01,A02,A03,A04,A05,A06,A07,A08,A09,A10,A11,A12,A13,A14,A15);
[RmeanB,GmeanB,BmeanB,averagesB] = func_mean_color_value_B(B01,B02,B03,B04,B05,B06,B07,B08,B09,B10,B11,B12,B13,B14);
[RmeanC,GmeanC,BmeanC,averagesC] = func_mean_color_value_C(C01,C02,C03,C04,C05,C06,C07,C08,C09,C10,C11,C12,C13);
save feature\01average\averagesA.mat averagesA;
save feature\01average\averagesB.mat averagesB;
save feature\01average\averagesC.mat averagesC;
%step3:图片的方差值
variances_animals     = func_variance_A(A01,A02,A03,A04,A05,A06,A07,A08,A09,A10,A11,A12,A13,A14,A15);
variances_fruit       = func_variance_B(B01,B02,B03,B04,B05,B06,B07,B08,B09,B10,B11,B12,B13,B14);
variances_vegetables  = func_variance_C(C01,C02,C03,C04,C05,C06,C07,C08,C09,C10,C11,C12,C13);
figure;
plot(variances_animals,'r-*');hold on;
plot(variances_fruit,'k-*');hold on;
plot(variances_vegetables,'b-*');hold off;
legend('动物图片方差','水果图片方差','蔬菜图片方差');
save feature\02variances\variances_animals.mat variances_animals;
save feature\02variances\variances_fruit.mat variances_fruit;
save feature\02variances\variances_vegetables.mat variances_vegetables;
%step4:图片的熵
H_A = func_H_A(A01,A02,A03,A04,A05,A06,A07,A08,A09,A10,A11,A12,A13,A14,A15);
H_B = func_H_B(B01,B02,B03,B04,B05,B06,B07,B08,B09,B10,B11,B12,B13,B14);
H_C = func_H_C(C01,C02,C03,C04,C05,C06,C07,C08,C09,C10,C11,C12,C13);
figure;
plot(H_A,'r-*');hold on;
plot(H_B,'k-*');hold on;
plot(H_C,'b-*');hold off;
legend('动物图片熵','水果图片熵','蔬菜图片熵');
save feature\03H\H_A.mat H_A;
save feature\03H\H_B.mat H_B;
save feature\03H\H_C.mat H_C;
%step5:统计分布
func_hist_A(A01,A02,A03,A04,A05,A06,A07,A08,A09,A10,A11,A12,A13,A14,A15);
func_hist_B(B01,B02,B03,B04,B05,B06,B07,B08,B09,B10,B11,B12,B13,B14);
func_hist_C(C01,C02,C03,C04,C05,C06,C07,C08,C09,C10,C11,C12,C13);
%========================================================================
%========================================================================


%% 问题二:图像子采样和降纬
%图像子采样
level = 2;
resampling_A(A01,A02,A03,A04,A05,A06,A07,A08,A09,A10,A11,A12,A13,A14,A15,level);
resampling_B(B01,B02,B03,B04,B05,B06,B07,B08,B09,B10,B11,B12,B13,B14,level);
resampling_C(C01,C02,C03,C04,C05,C06,C07,C08,C09,C10,C11,C12,C13,level);
%图像降纬操作
PCA_A();
PCA_B();
PCA_C();
%========================================================================
%========================================================================


%% 问题三:分类
%k means
func_k_means(3);
%fuzzy C means
func_fcm;
%========================================================================
%========================================================================


%% 问题四:KNN,SVM分类
%KNN
func_knn();
%SVM
func_SVM();
%========================================================================
%========================================================================


%% 问题五:主要是问题的回答。不涉及到具体的代码;

3.仿真结论:

A02-09