您现在的位置是:首页 > 正文

matlab练习程序(PCA)

2024-02-29 15:41:46阅读 2
clear all;
close all;
clc;
img1=imread('Corner.png');
img2=imread('Corner1.png');
img3=imread('Corner2.png');
[height width]=size(img2);
a=reshape(img1,1,height*width);
b=reshape(img2,1,height*width);
c=reshape(img3,1,height*width);

ma=mean(a);
mb=mean(b);
mc=mean(c);

a=a-ma;
b=b-mb;
c=c-mc;

x=[a' b' c'];
x=double(x);
y=x'*x/(height*width);

[v d]=eig(y);

ed=x*v;

img4=zeros(height,width);
img4=reshape(ed(:,1),height,width);

img5=zeros(height,width);
img5=reshape(ed(:,2),height,width);

img6=zeros(height,width);
img6=reshape(ed(:,3),height,width);

imshow(mat2gray(img4));
figure,imshow(mat2gray(img5));
figure,imshow(mat2gray(img6));

图片福利:

图1:

图2:

图3:

主成分:

特征值中间的成分:

特征值最小的成分:

转载于:https://www.cnblogs.com/tiandsp/archive/2012/04/23/2467229.html

网站文章

  • 排序(一)——简单选择排序,直接插入排序,C++sort函数例子

    #include #include #include using namespace std; struct Student{ char name[10]; char id[10]; int score; int r; }stu[100010]; bool cmp(St...

    2024-02-29 15:41:38
  • spring boot中.yml文件中的@解析失败

    spring boot中.yml文件中的@解析失败

    spring boot中.yml文件中的@解析失败

    2024-02-29 15:41:31
  • Shell-sort命令的使用

    sortsort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。基本语法sort (选项) (参数)选项说明-n依照数值的大小排序-r以相反的顺序来排序-t设置排序时所用的分隔字...

    2024-02-29 15:41:24
  • 2023 年度编程语言榜单,Python连续八年上榜!

    2023 年度编程语言榜单,Python连续八年上榜!

    从长远来看,Python 的地位还在持续上升,毕竟现在许多儿童和青少年都在使用 Python 编写他们的第一款游戏或开发嵌入式设备,然后,他们可以使用同一种语言无缝地进入更高级的领域,甚至找到工作。

    2024-02-29 15:40:57
  • SpringBoot项目资源初始化加载的几种方式

    SpringBoot项目资源初始化加载的几种方式

    一、问题日常业务模块开发的过程中,难免会需要做一些全局任务、缓存、线程等的初始化工作,那么如何做呢?方法有很多,但具体又要怎么选择呢?二、资源初始化1、既然我们要做资源的初始化,那么就要了解一下springboot启动过程。按照前面的分析,Spring-boot容器启动流程总体可划分为2部分:执行注解:扫描指定范围下的bean、载入自动配置类对应的bean加载到IOC容...

    2024-02-29 15:40:49
  • linux系统下进程的信号处理流程

    linux系统下进程的信号处理流程

    一、什么是信号? 1、信号本质 软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一...

    2024-02-29 15:40:43
  • flutter ios webview不能打开http地址

    flutter ios webview不能打开http地址

    webview_flutter 在使用过程中会iOS出现无法加载HTTP请求的情况, 但是Flutter 却可以加载HTTP请求。这就与两个的框架有关了,Flutter是独立于UIKit框架的。解决方案就是在iOS 的info.plist中添加对HTTP的信任。

    2024-02-29 15:40:14
  • [计算机网络笔记]第四部分——网络层 选路协议 因特网的选路协议

    层次选路:大型网络(比如因特网)不是理想模型,大型网络规模越大,越需要自治管理,所以大型网络需要划分区域以及层次。这是需要自治系统(AS)      在自治系统内部,网络由一个组织统一管理,所以内部可以运行相同的选路协议,遵守相同的规则,同时,一个AS内部还可以再次划分,形成层次      在自治系统之间,仅仅通过少量的路由器(网关路由器)通信,运行于不同于AS内部的选

    2024-02-29 15:40:05
  • 关于代码效率提升的方法心路历程(购物车)

    关于代码效率提升的方法心路历程(购物车)   给为园友们,大家好,最近一直解决执行提速,分析老代码的逻辑并提出优化方案,在这个过程中发现了很多不好的习惯,导致很多程序逻辑执行效率低下,现在将其总结一下...

    2024-02-29 15:39:59
  • java.text.dateformat_java.text 类 DateFormat.Field - Java 中文参考手册

    java.text.dateformat_java.text 类 DateFormat.Field - Java 中文参考手册

    java.lang.Objectjava.text.AttributedCharacterIterator.Attributejava.text.Format.Fieldjava.text.DateF...

    2024-02-29 15:39:30