【图像分割】基于主动轮廓模型实现图像分割附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电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除


相关文章
|
6月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
737 0
|
6月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
213 0
|
6月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
306 8
|
6月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
308 8
|
6月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
260 8
|
6月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
613 0
|
6月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
227 0
|
6月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
347 8
|
6月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
503 12
|
6月前
|
人工智能 数据可视化 网络性能优化
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
220 9

热门文章

最新文章

下一篇
开通oss服务