Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 基于PCA的二维图像降维_Matlab_Image Processing_Dimensionality Reduction - Fatal编程技术网

Matlab 基于PCA的二维图像降维

Matlab 基于PCA的二维图像降维,matlab,image-processing,dimensionality-reduction,Matlab,Image Processing,Dimensionality Reduction,我想缩小2D图像的尺寸。我有大小为100x50的图像补丁,我想缩小这些补丁的尺寸 我是否需要首先将patch100x50转换为矢量5000x1,然后应用PCA来减小尺寸,或者我可以直接在patch100x50上应用PCA来减小尺寸,并将尺寸减小到2x50 主成分分析将向量空间中的一个点作为输入,并将其投影到子空间上。通过这种方式表达,很容易记住需要将面片调整为向量 使用Matlab,调用你的补丁X,你可以通过调用X:轻松实现这一点,你不必搞乱重塑。降维是R^n->R^m,其中n>m,因此根据你的

我想缩小2D图像的尺寸。我有大小为100x50的图像补丁,我想缩小这些补丁的尺寸


我是否需要首先将patch100x50转换为矢量5000x1,然后应用PCA来减小尺寸,或者我可以直接在patch100x50上应用PCA来减小尺寸,并将尺寸减小到2x50

主成分分析将向量空间中的一个点作为输入,并将其投影到子空间上。通过这种方式表达,很容易记住需要将面片调整为向量

使用Matlab,调用你的补丁X,你可以通过调用X:轻松实现这一点,你不必搞乱重塑。

降维是R^n->R^m,其中n>m,因此根据你的文本,我得到的印象是你的意思是:

分辨率调整

改变目标分辨率 数据缩减

消除无关紧要的数据 对于图像大小调整或数据缩减,有许多方法,如:

线性/双线性/立方/。。。过滤

适用于可视化数据大小调整,而不是数据缩减 基于频域DFFT/DCT/DST的数据约简

可用于更改分辨率而不会造成重大数据丢失 通过转换到频域 可选删除噪声或不重要的数据,如JPEG压缩 以所需分辨率转换回空间域 当您停留在频域时,也可用于数据缩减 使用有效频率和高振幅。。 主成分分析

无法用于预定目标分辨率,因为 它提取重要数据,其大小取决于内容
因此,答案实际上取决于您需要实现什么,以及为了什么目的可以直接应用2D-PCA。至少它存在,并且在还原方面应比1D-PCA更好

2004年关于这一点的一篇被高度引用的研究论文: Yang,J.等人,2004年。二维PCA:一种新的基于外观的人脸表示和识别方法。IEEE模式分析和机器智能学报,261页,第131-137页。


不幸的是,我不知道Matlab实现。

最初编写时,不清楚是要调整图像大小还是要应用标题中的PCA。我调整了标题以反映问题文本中的问题。我执行了以下操作:noofdim=4[r,c]=sizeimg;%计算cov矩阵和PCA矩阵m=meanimg;S=img-m*ones1,c*img-m*ones1,c';[潜在系数]=环境影响指数;[潜在的,潜在的]=sortdiaglatent,“下降”;M1=系数:,ind1:noofdim;latent1=latent1:noofdim@对不起,我现在没有足够的时间检查。