资源简介
硕士期间自己编写的边缘提取程序。以CMU步态库中的图像为例,提取人的轮廓。包括形态学运算、孔洞填充、平滑、标签等一系列操作,每个步骤均有注释,程序可读性强。
以下是代码片段:
% imclose the image
se=strel('disk',3);
f6=imclose(f5,se);
figure(4);
imshow(f6);
% fill the image
f8=imfill(f6);
figure(5);
imshow(f8);
% smooth the image
f9=double(f8)/255;
f10=medfilt2(f9,[3 3]);
figure(6);
imshow(f10,[]);
% add label to the image
bw1=im2bw(f10);
[x,num]=bwlabel(bw1,4);
...
代码片段和文件信息
clc;
clear all;
%reading and showing
f1=imread(‘foreground.jpg‘);
%converting color image to grayimage
f2=rgb2gray(f1);
figure(1)imshow(f2);
%reading and showing
f3=imread(‘background.jpg‘);
%converting color image to grayimage
f4=rgb2gray(f3);
figure(2)imshow(f4);
%background subtracting
f5=abs(double(f2)-double(f4));
[M N]=size(f5);
T=20;
for i=1:M
for j=1:N
if f5(ij)>T
f5(ij)=255;
else
f5(ij)=0;
end
end
end
f5=uint8(f5);
figure(3);
imshow(f5);
% imclose the image
se=strel(‘disk‘3);
f6=imclose(f5se);
figure(4);
imshow(f6);
% fill the image
f8=imfill(f6);
figure(5);
imshow(f8);
% smooth the image
f9=double(f8)/255;
f10=medfilt2(f9[3 3]);
figure(6);
imshow(f10[]);
% add label to the image
bw1=im2bw(f10);
[xnum]=bwlabel(bw14);
% calculate the number of pixels of each labeled area
long=1:num;
for i=1:num
[rc]=find(x==i);
rc=[r c];
long(i)=size(rc1);
end
% display the number of pixels of each labeled area
for j=1:num
disp(long(j));
end
% calculate which area has the biggest number of pixels
max=0;
for k=1:num
if(long(k)>max)
max=long(k);
m=k;
end
end
% the label of the biggest area
m
% the number of pixels of the biggest area
max
% get the image of the biggest area
[row column]=size(x);
for i=1:row
for j=1:column
if(x(ij)==m)
x(ij)=m;
else x(ij)=0;
end
end
end
se=strel(‘disk‘2);
x=imerode(xse);
% display the image
figure(7)imshow(x);
% get the edge of the image
y=edge(x‘canny‘);
figure(8)imshow(y);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2009-05-04 21:35 CMU\
文件 43648 2001-04-06 20:25 CMU\background.jpg
文件 1645 2005-05-30 18:18 CMU\edge1.asv
文件 1663 2008-03-01 09:56 CMU\edge1.m
文件 47037 2001-04-06 19:17 CMU\foreground.jpg
相关资源
- 基于三角曲面网格实现测地线算法的
- Fusiello极线校正 - 论文和Matlab程序
- 计算欧式距离的matlab程序
- Tikhonov正则化MATLAB程序
- 熵权法求权重 matlab程序
- 六种数字调制信号识别的matlab程序
- 利用GA-BP神经网络算法的应用之MATLA
- MHT算法的Matlab程序
- RS码编解码MATLAB程序
- 人脸特征点手动标定的matlab程序
- 1.5维普matlab程序
- UWB matlab程序
- 超分辨的MATLAB程序
- 数字信号处理理论算法与实现课后习
- s变换的matlab程序
- 计算齿轮齿数的MATLAB程序
- 稀疏贝叶斯matlab程序
- 洛伦兹系统matlab程序
- kalman滤波、平滑和预测 MATLAB程序
- 绘制在不同温度下光伏电池的输出特
- 生成格雷码图案matlab程序
- romberg算法计算积分 matlab程序
- HMM算法的语音识别的matlab程序
- mk检验matlab程序
- PSO工具箱使用简介\\test_func.mmatlab程序
- 振动仿真matlab程序
- Turbo码matlab程序
- 单服务器排队模型matlab程序
- 多车型车辆路径问题Matlab程序-CSDN
- emd分解matlab程序172943
评论
共有 条评论