资源简介
这是在MATLAB exchange下载的基于主动轮廓模型(ASM)的MATLAB二维图像分割代码,自己已经对代码进行了详细注释。里面也有数据采集的代码,可以直接运行,大家也可以在MATLAB exchange上对原始代码进行下载。
代码片段和文件信息
% This script shows an example of an working basic Active Shape Model
% with a few hand pictures.
%
% Literature used: Ginneken B. et al. “Active Shape Model Segmentation
% with Optimal Features“ IEEE Transactions on Medical Imaging 2002.
%
% Functions are written by D.Kroon University of Twente (February 2010)
clear all; clc; close all;
% Add functions path to matlab search path
functionname=‘ASM_2D_example.m‘; functiondir=which(functionname);
functiondir=functiondir(1:end-length(functionname));
addpath([functiondir ‘Functions‘])
addpath([functiondir ‘ASM Functions‘])
addpath([functiondir ‘InterpFast_version1‘])
% Try to compile c-files
cd([functiondir ‘InterpFast_version1‘])
try
mex(‘interp2fast_double.c‘‘image_interpolation.c‘);
catch ME
disp(‘compile c-files failed: example will be slow‘);
end
cd(functiondir);
%% Set options
% Number of contour points interpolated between the major landmarks.
% 在主要特征点之间插值的轮廓点的数量
options.ni=20;
% Length of landmark intensity profile
% 强度剖面的特征点的长度
options.k = 8;
% Search length (in pixels) for optimal contourpoint position
% 为了优化特征点位置,寻找像素的长度??
% in both normal directions of the contourpoint.
% 在轮廓点的法向方向的两边
options.ns=6;
% Number of image resolution scales
% 图像分辨率尺度
options.nscales=2;
% Set normal contour limit to +- m*sqrt( eigenvalue )
% 设置轮廓法线 误差为正负m*sqrt( eigenvalue ) 那个正负根3namda
options.m=3;
% Number of search itterations
% 搜索迭代次数
options.nsearch=40;
% If verbose is true all debug images will be shown.
% 如果verbose是真,所有调试图像都显示???
options.verbose=true;
% The original minimal Mahanobis distance using edge gradient (true)
% 使用边界梯度初始最初的最小马氏距离
% or new minimal PCA parameters using the intensities. (false)
% 或者用强度作为新的最小PCA参数
options.originalsearch=false;
%% Load training data 数据载入
% First Load the Hand Training DataSets (Contour and Image)
% 首先载入手训练数据集合(轮廓和图像)
% The LoadDataSetNiceContour not only reads the contour points but
% 载入好的轮廓数据集合,不仅读取轮廓点,也
% also resamples them to get a nice uniform spacing between the important
% 为得到一个好的统一的特征空间,在两个重要的轮廓特征点之间对他们进行重采样
% landmark contour points.
% 数据变量初始化
TrainingData=struct;
for i=1:10
% 读取Fotos文件夹里面的数据,并开始初始化文件名
is=num2str(i);
number = ‘000‘;
number(end-length(is)+1:end)=is;
% filename=[‘..\images2D\contour‘ number ‘.mat‘];
% load(filename);
% 读取图片
filename=[‘Fotos/train‘ number ‘.jpg‘];
% 将图片数据变为浮点型并显示
I=im2double(imread(filename));
% 读取该图片对应的mat数据
filename=[‘Fotos/train‘ number ‘.mat‘];
% 绘制保存的mat数据插值后在图像中的位置
[VerticesLines]=LoadDataSetNiceContour(filenameoptions.nioptions.verbose);
if(options.verbose)
t=mod(i-14);
if(t==0)
figure;
end
subplot(22t+1)
imshow(I);
hold on;
% P1中存放的是没有插值的鼠标采集的点 P2中存放的是对采集的点插值后的点
P1=Vertices(Lines(:1):); P2=Vertices(Lines(:2):);
plot([P1(:2) P2(:2)]‘[P1(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-02-28 16:32 ASM_2D\
目录 0 2017-01-19 17:11 ASM_2D\ASM Functions\
文件 6342 2017-01-19 17:16 ASM_2D\ASM Functions\ASM_ApplyModel2D.m
文件 724 2017-01-19 16:42 ASM_2D\ASM Functions\ASM_GetContourNormals2D.m
文件 2852 2014-02-12 13:49 ASM_2D\ASM Functions\ASM_MakeAppearanceModel2D.m
文件 1234 2017-01-19 16:24 ASM_2D\ASM Functions\ASM_MakeShapeModel2D.m
文件 1001 2017-01-19 16:21 ASM_2D\ASM Functions\ASM_align_data2D.m
文件 343 2017-01-19 16:38 ASM_2D\ASM Functions\ASM_align_data_inverse2D.m
文件 2028 2017-01-19 16:56 ASM_2D\ASM Functions\ASM_getProfileAndDerivatives2D.m
文件 5215 2017-01-19 17:15 ASM_2D\ASM_2D_example.m
目录 0 2017-01-19 14:36 ASM_2D\Fotos\
文件 11264 2014-02-12 13:49 ASM_2D\Fotos\Thumbs.db
文件 23898 2014-02-12 13:49 ASM_2D\Fotos\test001.jpg
文件 21022 2014-02-12 13:49 ASM_2D\Fotos\train001.jpg
文件 792862 2014-02-12 13:49 ASM_2D\Fotos\train001.mat
文件 32785 2014-02-12 13:49 ASM_2D\Fotos\train002.jpg
文件 1240485 2014-02-12 13:49 ASM_2D\Fotos\train002.mat
文件 25816 2014-02-12 13:49 ASM_2D\Fotos\train003.jpg
文件 935188 2014-02-12 13:49 ASM_2D\Fotos\train003.mat
文件 31684 2014-02-12 13:49 ASM_2D\Fotos\train004.jpg
文件 1277713 2014-02-12 13:49 ASM_2D\Fotos\train004.mat
文件 32044 2014-02-12 13:49 ASM_2D\Fotos\train005.jpg
文件 1284249 2014-02-12 13:49 ASM_2D\Fotos\train005.mat
文件 22160 2014-02-12 13:49 ASM_2D\Fotos\train006.jpg
文件 815440 2014-02-12 13:49 ASM_2D\Fotos\train006.mat
文件 21454 2014-02-12 13:49 ASM_2D\Fotos\train007.jpg
文件 787937 2014-02-12 13:49 ASM_2D\Fotos\train007.mat
文件 24265 2014-02-12 13:49 ASM_2D\Fotos\train008.jpg
文件 889927 2014-02-12 13:49 ASM_2D\Fotos\train008.mat
文件 22379 2014-02-12 13:49 ASM_2D\Fotos\train009.jpg
文件 965003 2014-02-12 13:49 ASM_2D\Fotos\train009.mat
............此处省略31个文件信息
- 上一篇:MATLAB计算两个图片的单应性矩阵
- 下一篇:MATLAB 粒子滤波目标跟踪代码
评论
共有 条评论