资源简介
基本Snake活动轮廓模型,matlab,代码,基本Snake活动轮廓模型
代码片段和文件信息
% 基本Snake活动轮廓模型
I=imread(‘H:/MRI1/12.jpg‘); % 读入的图片应为uint8类型二维的灰度图
snake(I); % 对图像I求其中需要分割物体的snake边界
function snake(I)
% Snake主体部分
alpha=0.5; beta=0; % 连续参数alpha=0.5;平滑参数beta=0;步长为1
[xy]=DrawLine(I); % 在图像I上手动画线,得到初始轮廓线
a=2*alpha+6*beta; b=-(alpha+4*beta); c=beta;
J=[c b a b c]; h=max(size(x));
A=diagCyclMat(hJ); % 求取设定参数下的五对角循环矩阵
II=eye(h); [m~]=size(I); % 初始化
I=double(I);
I1=-ff(I); % 高斯势能I1
[I2xI2y]=NGradient(I1); % I1的负梯度I2
T=max(max(abs(I2x(:)))max(abs(I2y(:))));
I2x=I2x/T; I2y=I2y/T; % 梯度归一化
fx=-1*I2x; fy=-1*I2y; % f为图像I的高斯势能的梯度
for t=1:10000 % 迭代,未计算迭代终点
ffx=fx(m*(uint16(x)-1)+uint16(y));
ffy=fy(m*(uint16(x)-1)+uint16(y));
x=((II/(A+II))*(x‘-ffx‘))‘;
y=((II/(A+II))*(y‘-ffy‘))‘;
end
I=uint8(I); imshow(I); hold on
plot(xy‘Color‘‘White‘) % 显示最终Snake轮廓线
end
function I1=ff(I)
%求取I的边缘函数(负高斯势能)
%5阶Standard Deviation=3的高斯滤波,sobel梯度
h=fspecial(‘gaussian‘53); w1=fspecial(‘sobel‘); w2=w1‘;
Is=imfilter(double(I)h‘conv‘‘replicate‘);
I1=imfilter(Isw1‘replicate‘).^2+imfilter(Isw2‘replicate‘).^2;
end
function [I2xI2y]=NGradient(I)
%求取I的负梯度
%sobel梯度
w1=fspecial(‘sobel‘); w2=w1‘;
I=double(I);
I2y=imfilter(Iw1‘replicate‘);
I2x=imfilter(Iw2‘replicate‘);
end
function A=diagCyclMat(nJ)
% A = diagonal cycle(J) matrix.
%生成一个以向量J为循环体的
- 上一篇:simli
nk仿真交流调压电路 - 下一篇:直方图均衡化Matlab源代码
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论