pgm是什么意思 pgm是什么意思

目标
目的:为了让大家了解图像识别和检索的算法开发过程,以及加深对特征和分类器的理解 。
概要
对于图像分类和检索来说,最重要的有两个内容,一个是特征提取方法,另一个是分类方法 。图像识别就是先提取图像的特征,然后根据图像的特征进行分类识别的过程 。为了让大家最快的了解图像识别算法的开发过程,我特意使用“图像尺寸缩小+欧式距离”的思想编写了相应的程序 。算法实现的流程图如下图所示 。

pgm是什么意思 pgm是什么意思


pgm是什么意思 pgm是什么意思


pgm是什么意思 pgm是什么意思


pgm是什么意思 pgm是什么意思


pgm是什么意思 pgm是什么意思


pgm是什么意思 pgm是什么意思


pgm是什么意思 pgm是什么意思


pgm是什么意思 pgm是什么意思


pgm是什么意思 pgm是什么意思


pgm是什么意思 pgm是什么意思


pgm是什么意思 pgm是什么意思


pgm是什么意思 pgm是什么意思


pgm是什么意思 pgm是什么意思


,这都告诉你们了,感觉损失大了)
为了实现本文的算法,我特意使用上面的公式编写了一个欧式距离分类器 。即edpredict.m文件 。下面简单的介绍一下该函数文件 。
该函数文件的源代码如下所示:
function = edpredict(dtrain,dtest,ltrain,ltest)
---------------------------------------------------------------------------------------------------------------标记1
if nargin ~= 4
disp('输入的参数必须是4个');
return;
end
if length(size(dtrain)) ~= 2
disp('训练样本必须是二维矩阵!');
return;
end
if length(size(dtest)) ~= 2
disp('测试样本必须是二维矩阵!');
return;
end
if size(dtrain,2) ~= size(dtest,2)
disp('测试样本特征向量维度应该和训练样本特征向量维数相同!');
end
--------------------------------------------------------------------------------------------------------------标记2
dtrain = double(dtrain); % 训练数据
dtest = double(dtest); % 测试数据
ltrain = double(ltrain); % 训练样本标签
ltest = double(ltest); % 测试样本标签
-------------------------------------------------------------------------------------------------------------标记3
= size(dtrain);
= size(dtest);
index = zeros(m2,1);
-------------------------------------------------------------------------------------------------------------标记4
for i = 1:m2
distance = 1000000;
for j = 1:m1
temp = sqrt(norm(dtest(i,:) - dtrain(j,:)));
if distance > temp
distance = temp;
index(i) = ltrain(j); % 预测标签
end
end
end
-------------------------------------------------------------------------------------------------------------标记5
accuracy = 100*sum(index == ltest)/m2; % 准确度
str = strcat('accuracy = ',num2str(accuracy),'%',' (classify)');
disp(str);
end
首先说function 。MATLAB的m文件有两种,一种是脚本文件,一种是函数文件 。它们的相同点都是由一系列的命令组成的,但是,脚本文件不能返回变量哦,函数文件可以啊!即,调用脚本文件时,它能实现一定的功能并产生一些结果,但是不能返回任何东东到调用的位置 。但是当调用函数文件时,处理完成脚本文件的功能外,还能返回变量到调用位置 。大家明白没有?没有的话baidu或看看matlab教程 。不过话说回来,大家不明白也就算了,这里其实就想说function的功能是:声明本文件是函数文件,不是脚本文件 。(脚本文件的话,开头没有标志性的语句,直接开始写自己的代码就可以了)
第一行“function = edpredict(dtrain,dtest,ltrain,ltest)”叫函数头,function声明这是函数文件,等号左边是函数的返回变量,即;等号右边是函数名(edpredict)和输入参数” (dtrain,dtest,ltrain,ltest)” 。注意几点:①定义函数时,函数的名字一定想好,不要和MATLAB自带函数重名;②参数之间都是用逗号间隔开的,记住哦!!!

推荐阅读