matlab练习程序(PCASVD)

clear all;
close all;
clc;
img1=imread('Corner.png');
img2=imread('Corner1.png');
img3=imread('Corner2.png');

img1=imresize(img1,[35 90]); %Matlab的svd不支持太大的数据,我把数据变小了.
img2=imresize(img2,[35 90]);
img3=imresize(img3,[35 90]);

[height width]=size(img2);
a=reshape(double(img1),1,35*90);
b=reshape(double(img2),1,35*90);
c=reshape(double(img3),1,35*90);

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);
[u s w]=svd(x); %w相当于排序后的d,用svd就不用求x'*x了

ed=x*w;%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.http://iiec.cqu.edu.cn/wiki/index.php/SVD%E4%B8%8EPCA%E7%9A%84%E7%93%9C%E8%91%9B

转载于:https://www.cnblogs.com/yangxiao99/p/4751245.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET的两种部署模式,了解一下

前言以往部署程序一直是习惯性先安装运行时环境,然后再将发布打包好的程序运行起来;但当多个程序依赖不同版本框架平台时,如果部署在同一台机器上,那就需要在同一台机器上安装多个版本的运行时,总感觉有点不太方便&…

大型数据库课程知识整理

文章目录常见数据库有哪些?SQL和NOSQL区别和优缺点数据库系统可以从那些方面进行优化?1.应用层的优化2.数据库设计与配置优化3.数据库配置优化4.操作系统和硬件优化5.架构优化IOE概念Oracle体系结构物理结构内存结构后台服务进程Oracle扩展 RAC双机热备表…

Linux性能优化2.1 CPU性能统计信息

摘要 性能工具:系统CPU 本章概述了系统级的Linux性能工具。这些工具是你追踪性能问题时的第一道防线。它们能展示整个系统的性能情况和哪些部分表现不好。本章将讨论这些工具可以测量的统计信息,以及如何使用各种工具收集这些统计结果。阅读本章后&#…

Spring + hibernate + JPA 配置

最近对hibernate的JPA实现比较感兴趣&#xff0c;在此记录下配置方法&#xff0c;备查。先上maven依赖包配置&#xff0c;这里使用的是spring3.1.2和hibernate3.6.0<dependencies> <dependency><groupId>org.hibernate</groupId><artifactId…

C语言之sprintf使用总结

1、问题 在open ssl 里面输出16进制的随机数 uint8_t *client NULL;client ssl->s3->client_randomfor (int i 0; i < 32; i){printf("client_random is %02x\n", client[i]);} 但是这样输出都是一个一个的打印&#xff0c;我需要连接在一起的字符串 2…

CSS3弹性伸缩布局(一)——box布局

CSS3弹性伸缩布局简介 2009年&#xff0c;W3C提出了一种崭新的方案----Flex布局&#xff08;即弹性伸缩布局&#xff09;&#xff0c;它可以简便、完整、响应式地实现各种页面布局&#xff0c;包括一直让人很头疼的垂直水平居中也变得很简单地就迎刃而解了。但是这个布局方式还…

Avalonia跨平台入门第十五篇之ListBox聊天窗口

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果、Expander控件、ListBox折叠列表;今天趁着大周末的时间接着去摸索基于ListBox的聊天窗口的效果,最终实现的效果如…

《Unity着色器和屏幕特效开发秘笈(原书第2版)》一2.9 打包和混合纹理

本节书摘来自华章出版社《Unity着色器和屏幕特效开发秘笈&#xff08;原书第2版&#xff09;》一书中的第2章&#xff0c;第2.9节&#xff0c;作者 [英]艾伦朱科尼&#xff08;Alan Zucconi&#xff09; [美]肯尼斯拉默斯&#xff08;Kenneth Lammers&#xff09;&#xff0c;更…

云计算及应用课程知识整理

文章目录一、云计算云计算概念云计算的服务类型云计算技术体系结构的层次及其功能为什么云计算成本低&#xff1f;二、GFS分布式的文件系统设计需要考虑哪些问题&#xff1f;GFS架构GFS容错机制三、分布式数据处理MapReducemapReduce概念MapReduce适合什么类型数据&#xff1f;…

LeetCode之Rotate Array

1、题目 Rotate an array of n elements to the right by k steps. For example, with n 7 and k 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4]. Note: Try to come up as many solutions as you can, there are at least 3 different ways to solve this p…

Android loading进度条使用简单总结

在这里&#xff0c;总结一下loading进度条的使用简单总结一下。 一、说起进度条&#xff0c;必须说说条形进度条&#xff0c;经常都会使用到嘛&#xff0c;特别是下载文件进度等等&#xff0c;还有像腾讯QQ安装进度条一样&#xff0c;有个进度总给人良好的用户体验。 先来找图看…

.NET6之MiniAPI(二十二):HttpClient

说明&#xff1a;本篇不是说明HttpClient怎么使用&#xff0c;而以分享在asp.net core mini api框架下&#xff0c;HttpClient的引入和使用方式。我们在业务开发中&#xff0c;免不了调用三方的服务&#xff0c;这时就会用到HttpClient&#xff0c;在早期的asp.net core框架中&…

《超越需求:敏捷思维模式下的分析》—第1章 1.1节简介

本节书摘来自异步社区《超越需求&#xff1a;敏捷思维模式下的分析》一书中的第1章&#xff0c;第1.1节简介&#xff0c;作者【美】Kent J. McDonald&#xff08;肯特 J. 麦克唐纳&#xff09;&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 第一部分 理念…

sublime php语法检查

安装sublimelinter 安装sublimelinter-php 设置sublimelinter 进入SublimeLinter文件夹改动 SublimeLinter.sublime-settings文件 设置php文件夹

使用python获取焦点窗口的进程名称

我正在尝试使用python获取当前焦点窗口的进程名称。现在&#xff0c;我正在与此&#xff1a; import pygetwindow as gw print(gw.getActiveWindow().title)问题在于&#xff0c;这只会显示活动窗口的名称&#xff0c;实际上并没有太大帮助&#xff0c;因为有时应用程序的标题…

Android之jni编译出现no matching function for call to ‘_JNIEnv::GetJava(JNIEnv* , Java VM**)‘解决办法)‘

1、问题 jni编译出现这个错误 no matching function for call to _JNIEnv::GetJava(JNIEnv* &, Java VM**) 2、原因 自己写的 JObject obj NULL; &#xff08;*env&#xff09;->GetObjectClass(env, obj); 这个是在C文件里面这样写&#xff0c;但是cpp文件里面就…

POJ 2240 ZOJ 1082 Arbitrage 最短路,c++ stl pass g++ tle 难度:0

http://poj.org/problem?id2240 用log化乘法为加法找正圈 c 110ms,gtle #include <string> #include <map> #include <iostream> #include <cmath> #include <cstring> #include <queue> using namespace std; const int maxn 50; bool …

lv13 环境搭建SD卡启动

一、制作SD卡启动盘 1.1 方法1&#xff1a;在Linux下制作 一、准备好烧录脚本 cd ~/fs4412 ​ unzip sdfuse_q.zip ​ cd sdfuse_q ​ chmod x *.sh 二、将SD卡插入USB读卡器&#xff0c;并连接到虚拟机 或者 一般识别的sd卡会在dev目录下显示sdb 三、烧录 cp ../u-boot-f…

如何使用c#编写单片机程序

因为个人喜爱想研究单片机&#xff0c;但是不太会c&#xff0c;然后再找资料研究有没有其他的方法发现国外的c# nanoframework 框架可以编写单片机程序&#xff0c;本文我将会用自己踩过的坑来总结一些c#编写单片机的一些经验&#xff0c;希望帮到热爱c#的xd 首先第一步我们需要…

机器学习与数据挖掘——第二章 数据与数据预处理

一、关于数据 什么是数据&#xff1f; 数据是数据对象的集合及其属性 属性的类型 标称标度 nominal scale 标称属性的值是一些符号或实物的名称&#xff0c;每个值代表某种类别、编码或状态&#xff0c;所以标称属性又被看做是分类型的属性&#xff08;categorical&#xff…