使用PCA降维方法的人脸识别实验(经验总结

        这个实验其实是这学期选的模式识别课程的第一个实验,老师已经给好了基本的源代码,我们只需要运行就行了。但是由于老师可能是用Matlab写的程序,而我用的是免费的开源软件Octave。Octave里面没有包含Matlab中那么多的内置函数,像源代码中用于直方图均衡化的histeq()就没有,所以之前运行的时候一直出现histeq undefined 的错误。


        后来我就在网上搜了一些能实现直方图均衡化的源码,自己修改了一下,写了一个histeq()函数,使得老师给的程序可以正确运行。下面是老师给的主程序的源码:


老师给的源码中,im = double(im)/255;  im = histeq(im); 这两个命令原本都是注释掉的。


我自己修改了histeq()函数后,将注释去掉,就可以运行了,但是很奇怪的是,当我把这两个命令注释去掉之后,采用PCA降维方法求出来的人脸识别率反而下降了,而当我把im = double(im)/255;这个命令注释掉之后,不管有没有采用PCA降维,识别略都比以前好了很多。这是为什么呢?目前我还不懂,求高人指点啊!


没采用直方图均衡化后的结果:



采用均衡化后的结果图像:



我修改写的histeq()函数:


你可能感兴趣的:(Pattern,Recognition,人脸识别,matlab,im)