资源简介
图像预处理MATLAB代码(包括图像去孔洞,尺寸归一化等)
代码片段和文件信息
%This program is to motion segmentation and following
clc;
clear;
tic;
%对训练样本进行预处理.完成消除孔洞,大小规范化和最后尺寸归一化处理
%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%remove hole消除孔洞
cd(‘C:\Users\Administrator\Desktop\整合代码\步态库0度\实验样本‘);
Allpeople=dir(‘.‘);%20个人的目录
for xPerson=3:length(Allpeople)
cd(Allpeople(xPerson).name);%每个人的目录
allImages=dir(‘.‘);%获取所有png图像
for xImage=3:length(allImages)%从1到所有图像
diff=imread(allImages(xImage).name);%读进图像
newdiff = bwmorph(diff‘erode‘);%对二值图像进行数学形态学运算,erode使用结构元素ones(3)对图像进行腐蚀运算
newdiff = bwmorph(newdiff‘dilate‘2);%dilate使用结构元素ones(3)对图像进行膨胀运算
cd(‘C:\Users\Administrator\Desktop\整合代码\源码\试验路径\二值轮廓像‘);
%创建以当前人命名的文件夹
XPerson=Allpeople(xPerson).name;
if exist(XPerson)==0 %判断是否已经存在名为XPerson的文件夹
mkdir (XPerson) ; %在当前目录下,创建名为XPerson的文件件
end
cd (XPerson);%进入刚才创建的文件夹
I=num2str((xImage-2)‘%03d‘);%把1变成0012变成002....
imwrite(newdiffstrcat(num2str(I)‘.png‘));%这样生成的话最后读取时按高位读的,会出错
cd(‘C:\Users\Administrator\Desktop\整合代码\步态库0度\实验样本‘);
cd(Allpeople(xPerson).name);%返回每个人的目录
end
cd(‘C:\Users\Administrator\Desktop\整合代码\步态库0度\实验样本‘);%返回所有人在的大目录
end
disp(‘remove hole time‘);
toc;
clear;
tic;
%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%归一化处理,生成以人的轮廓边界为边界的二值图像
cd(‘C:\Users\Administrator\Desktop\整合代码\源码\试验路径\二值轮廓像‘);
Allpeople=dir(‘.‘);%20个人的目录
length(Allpeople);
for xPerson=3:length(Allpeople)
cd(Allpeople(xPerson).name);%每个人的目录
allImages=dir(‘.‘);%获取所有png图像
for xImage=3:length(allImages)%从1到所有图像
rawPIC=imread(allImages(xImage).name);%读进图像
picSize=size(rawPIC);%picSize=图像的维数 :行X列,两个数
% figure(1);subplot(121);imshow(rawPIC);title(‘原轮廓图像‘);
%找列的左边界
x=1;
y=1;
while(rawPIC(xy)==0)%0是黑色,1是白色,所以当时为0时即为背景区
if x>=picSize(1)
x=0;
y=y+1;
end
x=x+1;
end
leftx=y;%找到left点即退出
%找列的右边界
x=1;
y=picSize(2);
while(rawPIC(xy)==0)
if x>=picSize(1)
x=0;
y=y-1;
end
x=x+1;
end
rightx=y;%找到bottom点即退出
%找行的下边界
y=1;
x=1;
while(rawPIC(xy)==0)%0是黑色,1是白色,所以当时为0时即为背景区
if y>=picSize(2)
y=0;
x=x+1;
end
y=y+1;
end
boty=x;%找到top点即退出
%找行的上边界
y=1;
x=picSize(1);
while(rawPIC(xy)==0)
if y>=picSize(2)
y=0;
x=x-1;
end
y=y+1;
end
topy=x;%找到bottom点即退出
picResize=rawPIC(boty:topyleftx:rightx);%重构后的图像
- 上一篇:信号包络提取
- 下一篇:偏微分图像处理MATLAB程序
相关资源
- 偏微分图像处理MATLAB程序
- Matlab图像处理模板匹配完整程序小飞
- 图像色彩校正代码
- 图像处理识别图中棒材个数
- 图像处理中的模糊C均值聚类matlab算法
- 基于matlab的数字图像处理论文
- 简单的matlab图像处理GUI程序
- radon变换C代码
- matlab图像处理算法
- 在matlab下,验证码识别部分,字符分
- 数字图像处理——图像的分割实验
- matlab二维快速傅里叶变换原创.rar
- matlab图像处理中英文翻译文献
- MATLAB将视频转化为分帧图片的源代码
- MATLAB GUI 图像二值化处理源文件直接运
- CT图像处理三维体绘制简单的GUI
- matlab图像预处理的所有代码
- 基于图像分割的区域提取
- matlab 白细胞数目自动计数的图像处理
- 图像能量代码用于图像处理中 mat
- MATLAB数字图像处理张德丰源代码
- matlab 图像提取中心线
- matlab数字图像处理——清华大学出版
- 图像处理_烟雾检测matlab代码
- hyperspectral toolbox for matlab - 高光谱图
- 算术编码matlab
- 基于Matlab的植物叶面积数字摄影图像
- 三种空间域灰度级—彩色变换合集
- 数字图像处理第二版MatLab代码大全
- 基于matlab的无损压缩算法实验
评论
共有 条评论