自己的Matlab代码整理
生成矩阵:
traindata=zeros(4500,4097);
- 1
迭代目录下的所有bmp格式的图片 :
filelist = dir(fullfile(DataPath,int2str(i),'*.bmp'));
num_file = length(filelist);
for i=1:numfile
filename=filelist(i).name
end
- 1
- 2
- 3
- 4
- 5
矩阵对象存储
dlmwrite('traindata.data', uint8(traindata),' ');
- 1
图像裁剪:
faceImage= imcrop(originImg);
- 1
图像大小归一化:
resizedImg=imresize(originImg,[64,64]);
- 1
图像转为矩阵
faceimage=imread([faceName int2str(i) ').jpg']);
testdata(j,1)=1;
facedata=reshape(faceimage',[1,1024]);%//记得转置
testdata(j,2:1025)=facedata;
- 1
- 2
- 3
- 4
facetrain(i,:)=facedata;
- 1
%创建文件夹:
mkdir(SavePath,id);
%//当文件夹不存在的时候创建文件夹
if exist([savepath tag ],'dir')==0
mkdir(savepath,tag);
end
%//复制文件
copyfile([ImagePath '/' name] ,[SavePath '/' id '/' name ])
%//比较字符串是否相等:
if strcmp(tag,'pr' )
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
%//数据增强作用,增多图像数据。
%//旋转
% subplot(2,3,1);
im=imread('1.jpg');
% imshow(im);
%
% subplot(2,3,2);
% im_lr=fliplr(im);%//左右对称
% imshow(im_f);
%
% subplot(2,3,3);
% im_ud= flipud(im);%//上下对称
% imshow(im_ud);
%
% subplot(2,3,4);
% im_rot90=rot90(im);%// 旋转90度
% imshow(im_rot90);
%
% subplot(2,3,5);
% im_rot180=rot90(im,2);%//旋转180度
% imshow(im_rot180);
%
% subplot(2,3,6);
% im_rot270=rot90(im,3);%//旋转270度
% imshow(im_rot270);
% subplot(3,3,7);
% im_rot360=rot90(im,4); % 旋转360度还是自身。
% imshow(im_rot360);
%figure;
subplot(3,3,1);
imshow(im);
% subplot(2,3,2);
% im_noise=imnoise(im,'poisson');%//加噪声
% imshow(im_noise);
% subplot(2,3,3);
% im_histeq= histeq(im);%//直方图均衡化
% imshow(im_histeq);
% 左右剪切就好了,上下的话,容易剪掉一些人脸。
subplot(3,3,2);
[w,h]=size(im);
im_crop1=imcrop(im,[2,0,w,h]);
im_crop1=imresize(im_crop1,[w,h]);
imshow(im_crop1);
subplot(3,3,3);
[w,h]=size(im);
im_crop2=imcrop(im,[0,0,w-2,h]);
im_crop2=imresize(im_crop2,[w,h]);
imshow(im_crop2);
subplot(3,3,4);
[w,h]=size(im);
im_crop3=imcrop(im,[4,0,w,h]);
im_crop3=imresize(im_crop3,[w,h]);
imshow(im_crop3);
subplot(3,3,5);
[w,h]=size(im);
im_crop4=imcrop(im,[0,0,w-4,h]);
im_crop4=imresize(im_crop4,[w,h]);
imshow(im_crop4);
subplot(3,3,6);
[w,h]=size(im);
im_crop5=imcrop(im,[0,0,w-6,h]);
im_crop5=imresize(im_crop5,[w,h]);
imshow(im_crop5);
subplot(3,3,7);
[w,h]=size(im);
im_crop5=imcrop(im,[8,0,w,h]);
im_crop5=imresize(im_crop5,[w,h]);
imshow(im_crop5);
subplot(3,3,8);
[w,h]=size(im);
im_crop5=imcrop(im,[0,0,w-8,h]);
im_crop5=imresize(im_crop5,[w,h]);
imshow(im_crop5);
subplot(3,3,9);
[w,h]=size(im);
im_crop5=imcrop(im,[10,0,w,h]);
im_crop5=imresize(im_crop5,[w,h]);
imshow(im_crop5);
figure;
subplot(4,4,1);
im_rot5=imrotate(im,5,'bilinear','crop');
imshow(im_rot5);
subplot(4,4,2);
im_rot10=imrotate(im,10,'bilinear','crop');
imshow(im_rot10);
subplot(4,4,3);
im_rot15=imrotate(im,15,'bilinear','crop');
imshow(im_rot15);
subplot(4,4,4);
im_rot15=imrotate(im,20,'bilinear','crop');
imshow(im_rot15);
subplot(4,4,5);
im_rot15=imrotate(im,25,'bilinear','crop');
imshow(im_rot15);
subplot(4,4,6);
im_rot15=imrotate(im,30,'bilinear','crop');
imshow(im_rot15);
subplot(4,4,7);
im_rot5=imrotate(im,-5,'bilinear','crop');
imshow(im_rot5);
subplot(4,4,8);
im_rot10=imrotate(im,-10,'bilinear','crop');
imshow(im_rot10);
subplot(4,4,9);
im_rot15=imrotate(im,-15,'bilinear','crop');
imshow(im_rot15);
subplot(4,4,10);
im_rot15=imrotate(im,-20,'bilinear','crop');
imshow(im_rot15);
subplot(4,4,11);
im_rot15=imrotate(im,-25,'bilinear','crop');
imshow(im_rot15);
subplot(4,4,12);
im_rot15=imrotate(im,-30,'bilinear','crop');
imshow(im_rot15);
%//变换顺序,打乱数据的顺序。
A=[1 2 3 4 5 6 7 8 9 10]
p=randperm(10)
A=A(p)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
文件读写:
fid=fopen('testfile.txt','w');
fprintf(fid,'image%s\r\n',list(i_list).name);
fclose(fid);
- 1
- 2
- 3
- 4
%//文件图像格式转换
im=imread(sourcepath);
imshow(im);
imwrite(im,'a.eps');
- 1
- 2
- 3
- 4
%//当文件夹不存在时,新建文件夹:
if(exist([SavePath,'/', id],'dir')==7)
k=k+1;
else
mkdir(SavePath, id);
k=1;
end
- 1
- 2
- 3
- 4
- 5
- 6
- 7
//读取文件所有的行:
fid=fopen(filePath);
fid1=fopen(file1,'wt');
while ~feof(fid)
tline=fgets(fid);
//写出文件
fprintf(fid1,'%s',tline);
end
fclose(fid);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
//csv文件读写
filePath='/media/crw/DataCenter1/Dataset/Twins-Converted/image-metadata-2.0.csv';
T = readtable(filePath);
% T(2,'filename')
% T(2,'date')
% T(2,'gender')
% T(2,'race')
% T(2,'yearofbirth')
% T(2,'weather')
% T(2,'glasses')
% T(2,'expression')
% T(2,'yaw')
for i=1:24050
filename=cell2mat(T1(i,1))
gender=cell2mat(T1(i,3))
glasses=cell2mat(T1(i,7))
expression=cell2mat(T1(i,8))
yaw=cell2mat(T1(i,9))
end
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
%//鼠标裁剪图片
im=imread('testimage.jpg');
imshow(im);
imcroped=imcrop;
figure;
imshow(imcroped);
size(im)
im_gray=rgb2gray(im);
im_gray=imresize(im_gray,[64,64]);
figure;
imshow(im_gray);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
%//文本替代
name=fscanf(fid,'%s',1);
name=strrep(name,'\','/');
- 1
- 2
- 3
版权声明:本文为博主原创文章,未经博主允许不得转载。