【图像分割】基于主动轮廓模型实现图像分割附matlab代码2

简介: 【图像分割】基于主动轮廓模型实现图像分割附matlab代码2

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机

⛄ 内容介绍

医学图像分割在疾病诊断和治疗等领域中的作用日益重要.当前,主动轮廓模型已广泛地应用于医学图像分割领域.此模型对图像分割,可视化,配准和解剖组织跟踪等是很有效的.主动轮廓模型将复杂的分割转化为函数的极值问题,即曲线或曲面变形的依据是根据其定义的能量函数最小化原则.

⛄ 部分代码

function I=imgaussian(I,sigma,siz)

% IMGAUSSIAN filters an 1D, 2D color/greyscale or 3D image with an

% Gaussian filter. This function uses for filtering IMFILTER or if

% compiled the fast  mex code imgaussian.c . Instead of using a

% multidimensional gaussian kernel, it uses the fact that a Gaussian

% filter can be separated in 1D gaussian kernels.

%

% J=IMGAUSSIAN(I,SIGMA,SIZE)

%

% inputs,

%   I: The 1D, 2D greyscale/color, or 3D input image with

%           data type Single or Double

%   SIGMA: The sigma used for the Gaussian kernel

%   SIZE: Kernel size (single value) (default: sigma*6)

%

% outputs,

%   J: The gaussian filtered image

%

% note, compile the code with: mex imgaussian.c -v

%

% example,

%   I = im2double(imread('peppers.png'));

%   figure, imshow(imgaussian(I,10));

%

% Function is written by D.Kroon University of Twente (September 2009)


if(~exist('siz','var')), siz=sigma*6; end


if(sigma>0)

   % Make 1D Gaussian kernel

   x=-ceil(siz/2):ceil(siz/2);

   H = exp(-(x.^2/(2*sigma^2)));

   H = H/sum(H(:));


   % Filter each dimension with the 1D Gaussian kernels\

   if(ndims(I)==1)

       I=imfilter(I,H, 'same' ,'replicate');

   elseif(ndims(I)==2)

       Hx=reshape(H,[length(H) 1]);

       Hy=reshape(H,[1 length(H)]);

       I=imfilter(imfilter(I,Hx, 'same' ,'replicate'),Hy, 'same' ,'replicate');

   elseif(ndims(I)==3)

       if(size(I,3)<4) % Detect if 3D or color image

           Hx=reshape(H,[length(H) 1]);

           Hy=reshape(H,[1 length(H)]);

           for k=1:size(I,3)

               I(:,:,k)=imfilter(imfilter(I(:,:,k),Hx, 'same' ,'replicate'),Hy, 'same' ,'replicate');

           end

       else

           Hx=reshape(H,[length(H) 1 1]);

           Hy=reshape(H,[1 length(H) 1]);

           Hz=reshape(H,[1 1 length(H)]);

           I=imfilter(imfilter(imfilter(I,Hx, 'same' ,'replicate'),Hy, 'same' ,'replicate'),Hz, 'same' ,'replicate');

       end

   else

       error('imgaussian:input','unsupported input dimension');

   end

end

⛄ 运行结果

⛄ 参考文献

[1]吴北海. 基于主动轮廓模型的医学图像分割[D]. 河北工业大学.

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除


相关文章
|
传感器 算法 安全
基于分布式模型预测控制DMPC的单向拓扑结构下异构车辆车队研究(Matlab代码实现)
基于分布式模型预测控制DMPC的单向拓扑结构下异构车辆车队研究(Matlab代码实现)
438 4
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
789 2
|
传感器 机器学习/深度学习 编解码
【电缆】中压电缆局部放电的传输模型研究(Matlab代码实现)
【电缆】中压电缆局部放电的传输模型研究(Matlab代码实现)
376 3
|
计算机视觉
MATLAB实现图像分割:Otsu阈值法
Otsu方法(大津法)是一种广泛使用的自动图像阈值分割技术,它通过最大化类间方差来确定最佳阈值。
|
机器学习/深度学习 数据采集 传感器
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
759 0
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
1022 0
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
1283 0
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
432 0
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
439 0
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
579 8

热门文章

最新文章