资源简介
图像预处理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版(第三
- 基于matlab 的图像处理100实例
- 8领域边界跟踪 图像处理 matlab
- matlab-图像处理算法
- p文件,MATLAB的
- 数字图像处理radon matlab变换算法代码
- 图像降噪Matlab代码
- 传统关联成像、计算鬼成像matlab
- MATLAB7.x图像处理
- 基于matlab的车牌识别系统论文
- matlab2019运动目标检测--数字图像处理
- 计算图像Spatial Frequence的Matlab程序SF
- 尾灯识别matlab代码
- MATLAB大脑腔体图像分割
- 基于MATLAB人民币识别系统.zip
- 数字图像处理作业canny边缘检测坎尼边
- 数字图像处理 MATLAB 大作业 代码及其
- 遥感影像融合_数字图像处理的matlab程
- MATLAB图像与视频处理实用案例详解代
- MATLAB 图像处理识别程序
- 数字图像处理使用matlab进行采样量化
- 傅里叶变化频谱图及频域滤波
- MATLAB实现k-svd和mod信号处理
- 图像处理---matlab
- Matlab在图像处理与目标识别方面的应
- matlab数字图像处理之几何变换将图像
- matlab数字图像处理之图像几何变换
- 图像超分辨重建MATLAB源代码迭代步长
- mri去偏场代码
评论
共有 条评论