一 :噪音、高斯随机变量的matlab函数
(1)生成多元高斯随机变量的matlab函数:mvnrnd
(2)添加高斯白噪声的matlab函数:awgn
(3)图像加Salt & Pepper noise, Gaussian noise, Poisson noise怎么加?matlab函数imnoise能实现这个功能,见我的电脑other\matlab 2007a\work\function\imnoise_YaleB,注意点:imnoise函数有说明,The mean and variance parameters for 'gaussian', 'localvar', and 'speckle' noise types are always specified as if the image were of class double in the range [0, 1]. 当然也可以用uint8,有显示结果可知,如果直接用double型的0到255之间的数值是有问题的。
但对于LFW,看其最小的大概0,最大的大概0.02,怎么恢复到0到255。Haiqing Li讲不能恢复,因为你不知原始图像的最小值和最大值。当然可以用fea_original = (fea_original-min_value)/(max_value-min_value);得到一个初步结果,这样既相当于将最小值映射到0,最大值映射到1
(4)北航图像课件:课件\课件7、8、9章(2012-6-12)\解压后文件\第八章小波变换课件-5.ppt的P5,就是通过randn函数加入高斯噪音

二:
2.1 
图像显示imshow,imagesc
下面代码摘录至蔡登老师主页 http://www.zjucadcg.cn/dengcai/Data/Yale/images.html
The face image can be displayed in matlab with the following command lines:

%===========================================
faceW = 32;
faceH = 32;
numPerLine = 11;
ShowLine = 2;

Y = zeros(faceH*ShowLine,faceW*numPerLine);
for i=0:ShowLine-1
   for j=0:numPerLine-1
     Y(i*faceH+1:(i+1)*faceH,j*faceW+1:(j+1)*faceW) = reshape(fea(i*numPerLine+j+1,:),[faceH,faceW]);
   end
end

imagesc(Y);colormap(gray);
%===========================================

先将fea都除以256imagesc和imshow结果没有影响

2.2 照片的处理(Matlab命令)

(1)A=imread('1.JPG');%见我的matlab教材P33
% imshow(rgb2gray(A));%将彩色图片转成黑白的
B = imresize(A,[250 250]);
imwrite(B,'2.JPG');

(2) imshow的问题:利用Ran He给我的FRGC/dataset10, 命令:load ImgData;imshow(reshape(data(:,20),64,64))。问题:产生不了人脸。
原因:是double型,要变成整型。
解决方案1:imshow(reshape(data(:,20),64,64),[])。
解决方案2:imshow(uint8(reshape(data(:,20),64,64)))。
注意点:不要将data都变成整型,因为后续处理还是要用double型的。
This is under the help of Zhenhua Chai。

20130410问Ran He, FRGC/dataset10,每个原始图片是64*64,变成32*32,imresize函数要不要做特别设置,他讲他都用默认的设置
图像imshow出来后,可以通过impixelinfo命令来看具体的像素数值


三:eigs和eig

eigs:Find largest eigenvalues and eigenvectors of sparse matrix
eig: Find eigenvalues and eigenvectors

四:plot函数
电脑目录:\Spectral Regression\kernel\show_time\Isolet.m 直接运行有问题,解决方案:画出的图点击Edit -> Axes properties (注意不是选中Figure properties)-> More properties->Xlim下面 XTick,将1.5,2.5和3.5删除就可以了

五:杂七杂八
class: 类型
a=12345.6789 % 给变量 a 赋数值标量
class(a) % 对变量 a 的类别进行判断

MATLAB中如何将数据以分数的形式显示出来:FORMAT RAT
for i=1:6
    x(i) = 1/i;
end
format rat;%使用分数来表示数值,默认格式是short;rat(x):将实数转化成分数表示;rats(x):将实数化为多项式分数展开
disp(x)

FIND:找到非零值和序号
a = [1 -2 3; 4 5 -4;5 -6 7];
a<0的结果是:
0     1     0
0     0     1
0     1     0
ind = find(X)%ind = find(X) locates all nonzero elements of array X, and returns the linear indices of those elements in vector ind. If X is a row vector, then ind is a row vector; otherwise, ind is a column vector
故find(a<0)的结果是
4
6
8
因为matlab是按列存储的
Y(find(Y==-1)) = 1;%目的:将Y中为-1的值赋值为1

随机相关
任务:AR数据,每类四个样本,总共120类。所有样本按第一类、第二类的顺序依次排列,想从中随机挑50个样本,每个样本来自不同的类,如何实现?
方法:b = randperm(120); b = b(1:50); b = (b-1)*4;%the start position of each class
 b = b+randi(4,1,50); % randi is recommended by Libing Wang