首页 > 行业资讯 > 【图像增强】基于Frangi滤波器实现血管图像增强附matlab代码

【图像增强】基于Frangi滤波器实现血管图像增强附matlab代码

时间:2022-07-07 来源: 浏览:

【图像增强】基于Frangi滤波器实现血管图像增强附matlab代码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #图像处理matlab源码 737个

1 简介

针对眼底视网膜图像对比度低,受病变区域边界干扰,很难正确提取血管细节的问题提出了一种基于Frangi滤波器的视网膜血管分割的方法,仿真结果表明上述方法对细小血管的提取表现出良好的效果,具备很强的实用价值.

2 部分代码

function I=imgaussian(I,sigma,siz) % IMGAUSSIAN filters an 1 D, 2 D color/greyscale or 3 D 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 1 D gaussian kernels. % % J=IMGAUSSIAN(I,SIGMA,SIZE) % % inputs, % I: The 1 D, 2 D greyscale/color, or 3 D 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 1 D 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 1 D 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 3 D 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

3 仿真结果

4 参考文献

[1]袁盼, 陈以. 基于多尺度Frangi滤波器的视网膜血管分割[J]. 现代信息科技, 2020.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐