为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 冠脉造影图像心血管边缘提取

冠脉造影图像心血管边缘提取

2017-09-01 49页 doc 216KB 30阅读

用户头像

is_079973

暂无简介

举报
冠脉造影图像心血管边缘提取冠脉造影图像心血管边缘提取 目录 1、开题背景 ........................................................................................... 2 2、课题目的 ........................................................................................... 2 3、课题主要内容 .....................................
冠脉造影图像心血管边缘提取
冠脉造影图像心血管边缘提取 目录 1、开题背景 ........................................................................................... 2 2、课题目的 ........................................................................................... 2 3、课题主要内容 ................................................................................... 2 4、原理和方法 ....................................................................................... 2 4.1 边缘检测技术概述........................................................................................................... 2 4.2 灰度梯度算子 .................................................................................................................. 3 4.3 Roberts交叉算子 ........................................................................................................... 3 4.4 Sobel算子 ....................................................................................................................... 3 4.5 Kirsch算子 ..................................................................................................................... 3 4.6 Laplace算子 ................................................................................................................... 3 4.7 Marr算子 ......................................................................................................................... 4 5、步骤 ................................................................................................... 4 6、结果 ................................................................................................... 5 6.1分别利用中值滤波和高斯平滑去除图像中椒盐噪声和随机噪声 ................................ 5 6.2用灰度梯度算子进行边缘提取响.................................................................................... 6 6.3 用Roberts交叉算子进行边缘提取............................................................................... 7 6.4 用Sobel算子进行边缘提取........................................................................................... 8 6.5 用Laplace算子进行边缘提取 ...................................................................................... 9 6.6 用Kirsch算子进行边缘提取 ...................................................................................... 10 6.7 用Marr算子进行边缘提取........................................................................................... 11 7、结论 ................................................................................................. 12 8、讨论 ................................................................................................. 13 8.1 利用中值滤波和高斯平滑去除图像噪声的比较 ......................................................... 13 8.2 不同的模板大小对中值滤波的影响以及尺度(方差)对图像平滑的影响 ................. 13 8.3 利用不同算子对造影图像进行边缘提取的比较 ......................................................... 13 8.4 阈值选取对边缘检测的影响....................................................................................... 14 9、主要参考文献 ................................................................................. 14 1 1、开题背景 边缘检测技术在图像处理与计算机视觉中占有特殊的位置,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同区域内部的特征或属性是不同的,边缘检测技术正是利用物体和背景在某种图像特征上的差异来实现的,这些差异包括灰度、颜色 1或纹理特征。边缘检测技术实际上就是检测图像特征发生变化的位置,它是底层视觉处理中最重要的环节之一,也是图像分割、目标区域识别、区域形状提取 2等图像分析方法的基础。 近年来,边缘检测技术已经逐渐被广泛地应用于医学、林业、遥感、工程技术中的零部件检查、故障诊断以及探伤等更多领域。但是在实际应用中,不断涌现的先进新技术、新方法给人们如何选择合适的、更佳的图像边缘检测方法提出 3了新的难题。 2、课题目的 在学习了医学成像系统和医学图像处理等课程的基础上,以冠脉造影图像为例,利用Matlab软件,学习医学图像的图像增强和边缘提取等。 3、课题主要内容 1.分别利用中值滤波和高斯平滑去除图像中的椒盐噪声和随机噪声,分析不同的模板大小对中值滤波的影响,以及尺度(方差)对图像平滑的影响; 2.对造影图像分别用灰度梯度算子、Roberts交叉算子、Sobel算子、Kirsch算子、Laplace算子、Marr算子进行边缘提取,并对结果进行讨论,并研究阈值选取对边缘检测的影响。 4、原理和方法 4.1 边缘检测技术概述 边缘可定义为在局部区域内图像的差别,他表现为图像上的不连续性,包括灰度级的突变,纹理结构的突变,颜色的变化等,也即边缘是不同区域的分界线, ,指图像局部灰度显著变化的部分。 边缘提取首先要检出图像局部特征的不连续性,然后再将这些不连续的边缘像素连成完备的边界。边缘的特征是沿边缘走向的像素变化平缓而垂直方向的像素变化剧烈。所以,提取边缘的算法就是检出符合边缘特性的边缘像素的数学算子。由于常常无法实现确定轮廓取向,因而挑选用于轮廓增强的微分算子时,必 ,须选择那些不具备空间方向性的和具有旋转不变的线性微分算子。 2 在经典的边缘检测方法中,通常使用灰度梯度算子、Roberts交叉算子、Sobel算子、Kirsch算子、Laplace算子、Marr算子等。 4.2 灰度梯度算子 当图像微分运算后,每个像素处有一梯度值反应该点边缘强度。灰度梯度由幅值和方向两个因素构成。灰度梯度算子检测图像像素灰度在水平方向或垂直方向上的变化。因此,这种算子对水平方向或垂直方向上的边缘较为敏感,仅计算相邻像素的灰度差,对噪声比较敏感,无法抑制噪声的影响。 4.3 Roberts交叉算子 Roberts交叉边缘检测算子根据任意一对垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差,实际时该点连续梯度的近似值,而不是所预期的点出的近似值。另外该算子提取的边缘较粗,对噪声很敏感,并且需要手动地指定一个阈值,对不同的图像使用不同的阈值后,边界提取效果差别很大,因此Roberts交叉算子一般使用自适应的阈值,并对提取的边缘进行细化处理,这样将能有效地改善Roberts交叉算子的边界提取效果。一般适用于低噪声图像6。 4.4 Sobel算子 Sobel算子是边缘检测器中最常用的算子之一,一般可以利用快速卷积函数,简单有效,因此应用很广泛。该算子有两个,一个是检测水平边缘的;另一个是检测垂直边缘的。水平与垂直相比,Sobel算子对于像素的位置的影响做了加权,因此效果较好。Sobel算子另一种形式是各向同性Sobel算子,也有两个,一个是检测水平边沿的,另一个是检测垂直边沿的。各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。但是该算子并没有将图像的主体和背景严格区分开来,没有严格地模拟人的视觉生理特性,所以提取的图像轮廓有时并不能令人满意。具有采用加权滤波,边缘较宽,剪短点较多的特点,适用于灰度渐变、低噪声图像6。 4.5 Kirsch算子 对像素考察其8个相邻点。用3个相邻点的甲醛和减去剩下5个相邻点的加权和,并令3个相邻点环绕上述像素移位,多次计算,取其中差值最大者。Kirsch算子从八个方向对图像边缘信息进行提取,能获得较好的图像边缘。 4.6 Laplace算子 图像灰度值的强烈变化会导致其一阶导数在这个位置处出现一个尖峰脉冲,而在其他位置一阶导数都为0.对于二阶倒数来说,一阶导数形成的尖峰脉冲必然 3 导致其二阶导数存在过零点,而过零点的位置恰好对应原图像中边缘的位置。这表明可以利用二阶导数的过零点检测图像中边缘的存在。Laplace算子正是基于以上原理的一种二阶导数算子,在实际计算中一般采用Laplace算子模板与图像 7卷积来实现。 4.7 Marr算子 Marr算子是在Laplace算子的基础上实现的。Laplace算子对噪声比较敏感, 。根据人眼为了减少噪声的影响,可以对图像先进性平滑然后运用Laplace算子视觉成像原理,图像中任一个像素点所对应的场景点周围的点对该点光强的贡献成正态分布。因此,平滑函数选择具有正态分布形式的Gauss函数。已经,Marr算子是按零交叉检测阶跃边缘的最佳算子。麻烦的是,Marr算子所用卷积模板一般较大,典型的是半径为8-32个像素。 Marr算子具有明显的优点: 1.该滤波器中的高斯函数部分可以对图像进行平滑,消除图像中尺度变化小于滤波函数参数的噪声或不必要的细节。而高斯函数在空域与频域具有相同的形式与性质,都是平滑的、定域的,基本上不会引入在原始图像中未出现的变化。 2.采用拉普拉斯算子不仅减少了计算量,而且保证了各向同性。 3.滤波参数可调,能够在任何需要的尺度上工作。大的滤波器可以用来检测图像的模糊边缘,小的滤波器可以用来检测聚焦良好的图像细节。 在该算子中,滤波参数的选择很重要,参数小时边缘位置精度高,但边缘细节变化多;参数大时平滑作用大,但细节损失大,边缘点定位精度低。应根据噪声水平和边缘点定位精度要求适当选取参数。 5、步骤 ,、阅读并学习课题相关的文献及资料,学习掌握有关图像处理和边缘检测技术的基本原理和应用。 ,、并掌握不同边缘检测算子的计算公式,以及它们的检测特点。 ,、分别利用中值滤波和高斯平滑去除图像中的椒盐噪声和随机噪声,分析不同的模板大小对中值滤波的影响,以及尺度(方差)对图像平滑的影响。 4、对造影图像分别用灰度梯度算子、Roberts交叉算子、Sobel算子、Kirsch算子、Laplace算子、Marr算子进行边缘提取,并研究阈值选取对边缘检测的影响。 5、分析结果,实验总结。 4 获取冠脉造影图像 利用不同算子进行边缘提取 利用中值滤波和高斯平滑去除图像 中的椒盐噪声和随机噪声 分析不同的模板大小对中值滤波的研究阈值选取对边缘检测的影响。 影响,以及尺度对图像平滑的影响 总结实验结果,讨论分析课题研究过程出现的问题 6、结果 6.1分别利用中值滤波和高斯平滑去除图像中椒盐噪声和随机噪声 从下图1和图2可以看出中值滤波的除噪效果比高斯平滑效果更好,但是前者处理后的图像对比度不如后者。 中值滤波时,随着模板尺寸增大时,对噪声的消除效果有所增强,不过同时所得到图像变得更为模糊,可视的细节逐步减少。且在滤除椒盐噪声时最为有效。 对于高斯滤波,方差越大,对噪声的消除效果有所增强,不过同时所得到图像变得更为模糊,可视的细节逐步减少,且对随机噪声的滤除较差。 5 图1 不同模板中值滤波去除图像中椒盐噪声 图2 不同尺度高斯平滑去除图像中随机噪声 6.2用灰度梯度算子进行边缘提取响 从图3可以看出:随着阈值的减小,图像边缘提取的效果有所增强,但是噪声影响也变大。因仅计算相邻像素的灰度差,对噪声比较敏感,无法抑制噪声的影响。 6 图3 不同的阈值灰度梯度算子下进行边缘提取 6.3 用Roberts交叉算子进行边缘提取 从图4可以看出:随着阈值的减小,边缘提取的效果增强,即边缘越清晰,但是噪声的影响增加,边缘较粗,但效果较梯度算子好,对噪声敏感。 7 图4 不同的阈值Roberts交叉算子下进行边缘提取 6.4 用Sobel算子进行边缘提取 从下图5可以看出:随着阈值的减小,边缘提取的效果有所增强,但是噪声的影响变大。能进一步抑制噪声,但边缘定位精度不高,检测的边缘较宽,出现多像素宽度。其对这种渐变的图像边缘提取较好。 8 图5 不同的阈值Sobel算子下进行边缘提取 6.5 用Laplace算子进行边缘提取 从下图6可以看出:Laplace算子是二阶导数算子,因此对噪声非常敏感,随着阈值减小,边缘提取效果虽稍有增强,但是噪声的影响太大抑制无法分辨边缘。 9 图6 不同的阈值Laplace算子下进行边缘提取 6.6 用Kirsch算子进行边缘提取 从下图7可以看出:随着阈值的减小,边缘提取的效果增强,但噪声的影响变大,但是其对噪声的抑制较强,较好地平滑了噪声信息,但边缘较粗。 10 图7 不同的阈值Kirsch算子下进行边缘提取 6.7 用Marr算子进行边缘提取 从下图8可以看出:虽然该算子克服了Laplace算子抗噪声比较差的缺点,但是在抗噪声的同时,也将原有的比较尖锐的边缘也平滑掉了,造成部分边缘无法检测到。 11 图8 不同的阈值Marr算子下进行边缘提取 7、结论 1( 中值滤波的除噪效果比高斯平滑效果更好,但是前者处理后的图像对比度不如后者。 中值滤波时,随着模板尺寸增大时,对噪声的消除效果有所增强,不过同时所得到图像变得更为模糊,可视的细节逐步减少。且在滤除椒盐噪声时最为有效。 对于高斯滤波,方差越大,对噪声的消除效果有所增强,不过同时所得到图像变得更为模糊,可视的细节逐步减少,且对随机噪声的滤除较差。 2( 灰度梯度算子仅计算相邻像素的灰度差,对噪声比较敏感,无法抑制噪声的影响。 3(Robert算子提取的边缘较粗,对噪声很敏感,并且需要手动地指定一个阈值,对不同的图像使用不同的阈值后,边界提取效果差别很大,因此Roberts交叉算子一般使用自适应的阈值,并对提取的边缘进行细化处理,这样将能有效地改善Roberts交叉算子的边界提取效果。 4(Sobel算子利用垂直和水平方向模板可以得到不同方向的边缘,由于微分增强了噪音,平滑效果是Sobel算子特别引人注意的特征。 5(Kirsch算子的边缘化效果较好,能够较全面的提取边缘信息。 12 6(Laplace算子是二阶导数算子,因此对图像中的噪声非常敏感。另外,它常产生双像素宽的边缘,而且不能提供图像边缘的方向信息。所以很少直接用作边缘检测。 7(Marr算子中的高斯函数部分可以对图像进行平滑,消除图像尺度变化小于滤波参数的噪声或不必要的细节,采用拉普拉斯算子不仅减少了计算量而且保证了各向同性。 8、讨论 8.1 利用中值滤波和高斯平滑去除图像噪声的比较 中值滤波的除噪效果比高斯平滑效果更好,但是前者处理后的图像对比度不如后者。 8.2 不同的模板大小对中值滤波的影响以及尺度(方差)对图像平滑的影响 中值滤波时,随着模板尺寸增大时,对噪声的消除效果有所增强,不过同时所得到图像变得更为模糊,可视的细节逐步减少。且在滤除椒盐噪声时最为有效。 对于高斯滤波,方差越大,对噪声的消除效果有所增强,不过同时所得到图像变得更为模糊,可视的细节逐步减少,且对随机噪声的滤除较差。 8.3 利用不同算子对造影图像进行边缘提取的比较 1( 灰度梯度算子仅计算相邻像素的灰度差,对噪声比较敏感,无法抑制噪声的影响。 2(Robert算子提取的边缘较粗,对噪声很敏感,并且需要手动地指定一个阈值,对不同的图像使用不同的阈值后,边界提取效果差别很大,因此Roberts交叉算子一般使用自适应的阈值,并对提取的边缘进行细化处理,这样将能有效地改善Roberts交叉算子的边界提取效果。 3(Sobel算子利用垂直和水平方向模板可以得到不同方向的边缘,由于微分增强了噪音,平滑效果是Sobel算子特别引人注意的特征。 4(Kirsch算子的边缘化效果较好,能够较全面的提取边缘信息。 5(Laplace算子是二阶导数算子,因此对图像中的噪声非常敏感。另外,它常产生双像素宽的边缘,而且不能提供图像边缘的方向信息。所以很少直接用作边缘检测。 6(Marr算子中的高斯函数部分可以对图像进行平滑,消除图像尺度变化小于滤波参数的噪声或不必要的细节,采用拉普拉斯算子不仅减少了计算量而且保证了各向同性。 13 8.4 阈值选取对边缘检测的影响 关于阈值的选择,对于不同的图像,不同的算子,有不同的最佳阈值。我们要根据不同的图像及算子进行选择,以获得最好的边缘提取。但是随着阈值的增大,提取的边缘越不清晰,这是一定的。 9、主要参考文献 1赵永志,彭国华。一种有效的图像二值化方法【J】。科学技术与工程,2007,7 .(1);139-141 2 ACHARYA Tinku,RAY Ajoy K。数字图像处理原理与应用【M】,田浩,译。北京:清华大学出版社,2007. 3韦炜。常用图像边缘检测方法及Matlab研究。现代电子技术,2011,34(4):91-92 4章毓晋。图像处理。第2版。北京:清华大学出版社,2006. 5厉丹,钱建生,芦楠楠等。图像边缘检测技术的改进。计算机工程与应用,2010,46(18):164-165. 6龚自霞,成江晨。基于Matlab实现的图像边缘检测。图形图像,2011:11-12 7孙怀斌,唐强,倪远平。对鳞翅目昆虫触角和腹部边缘检测算法的比较研究。昆明理工大学学报,2005,30(5A):289-290 10、附录 1.1 f=imread('E:\angiogram.bmp') g=imnoise(f,'salt & pepper') d1=medfilt2(g,[12,12],zeros) d2=medfilt2(g,[9,9],zeros) d3=medfilt2(g,[6,6],zeros) d4=medfilt2(g,[3,3],zeros) subplot(2,3,1) imshow(f) title('原始图像') subplot(2,3,2) imshow(g) title('加入椒盐噪声后的图像') subplot(2,3,3) imshow(d1) title('中值滤波12*12模板') subplot(2,3,4) imshow(d2) title('中值滤波9*9模板') subplot(2,3,5) imshow(d3) 14 title('中值滤波6*6模板') subplot(2,3,6) imshow(d4) title('中值滤波3*3模板') 1.2 f=imread('E:\angiogram.bmp') subplot(2,4,1) imshow(f) title('原始图像') g=imnoise(f,'speckle') subplot(2,4,2) imshow(g) title('加入随机噪声后的图像') h1=fspecial('gaussian',[3 3],2.5) A1=imfilter(g,h1) subplot(2,4,3) imshow(A1) title('方差2.5') h2=fspecial('gaussian',[3 3],2) A2=imfilter(g,h2) subplot(2,4,4) imshow(A2) title('方差2') h3=fspecial('gaussian',[3 3],1.5) A3=imfilter(g,h3) subplot(2,4,5) imshow(A3) title('方差1.5') h4=fspecial('gaussian',[3 3],1) A4=imfilter(g,h4) subplot(2,4,6) imshow(A4) title('方差1') h5=fspecial('gaussian',[3 3],0.5) A5=imfilter(g,h5) subplot(2,4,7) imshow(A5) title('方差0.5') h6=fspecial('gaussian',[3 3],0.1) A6=imfilter(g,h6) subplot(2,4,8) imshow(A6) title('方差0.1') 15 1.3 I=imread('E:\tu.bmp'); imshow(I); title('源图像') f=rgb2gray(I); f=double(f); [M N]=size(f); % s1=[-1;1]; %垂直方向灰度梯度算子模板 % s2=[-1 1]; %水平方向灰度梯度算子模板 gg=zeros(M,N); for x=1:M-1 for y=1:N-1 g1(x,y)=f(x,y)-f(x,y+1); g2(x,y)=f(x,y)-f(x+1,y); gg(x,y)=max(abs(g1(x,y)),abs(g2(x,y))); end end %图像与模板做卷积 gg=gg*255/max(gg(:)); %将卷积结果映射到0-255 th=120;%设阈值为120 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end figure subplot(3,4,1); imshow(g) title('阈值为120') th=110;%设阈值为110 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) 16 g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,2); imshow(g) title('阈值为110') th=100;%设阈值为100 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,3); imshow(g) title('阈值为100') th=90;%设阈值为90 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,4); imshow(g) title('阈值为90') 17 th=80;%设阈值为80 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,5); imshow(g) title('阈值为80') th=70;%设阈值为70 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,6); imshow(g) title('阈值为70') th=60;%设阈值为60 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,7); 18 imshow(g) title('阈值为60') th=50;%设阈值为50 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,8); imshow(g) title('阈值为50') th=40;%设阈值为40 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,9); imshow(g) title('阈值为40') th=30;%设阈值为30 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end 19 subplot(3,4,10); imshow(g) title('阈值为30') th=20;%设阈值为20 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,11); imshow(g) title('阈值为20') th=10;%设阈值为10 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,12); imshow(g) title('阈值为10') 1.4 %Roberts算子 I=imread('E:\tu.bmp'); %图像导入 imshow(I); title('源图像') 20 f=rgb2gray(I); f=double(f); [M N]=size(f); % s1=[1 0;0 -1]; %主对角线方向Roberts算子模板 % s2=[0 1;-1 0]; %次对角线方向Roberts算子模板 gg=zeros(M,N); for x=1:M-1 for y=1:N-1 g1(x,y)=f(x+1,y+1)-f(x,y); g2(x,y)=f(x+1,y)-f(x,y+1); gg(x,y)=max(abs(g1(x,y)),abs(g2(x,y))); end end %图像与模板做卷积 gg=gg*255/max(gg(:)); %将卷积结果映射到0-255 th=120;%设阈值为120 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end figure subplot(3,4,1); imshow(g) title('阈值为120') th=110;%设阈值为110 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end 21 end end subplot(3,4,2); imshow(g) title('阈值为110') th=100;%设阈值为100 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,3); imshow(g) title('阈值为100') th=90;%设阈值为90 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,4); imshow(g) title('阈值为90') th=80;%设阈值为80 g=zeros(M,N); for x=1:M for y=1:N 22 if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,5); imshow(g) title('阈值为80') th=70;%设阈值为70 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,6); imshow(g) title('阈值为70') th=60;%设阈值为60 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,7); imshow(g) title('阈值为60') th=50;%设阈值为50 g=zeros(M,N); 23 for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,8); imshow(g) title('阈值为50') th=40;%设阈值为40 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,9); imshow(g) title('阈值为40') th=30;%设阈值为30 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,10); imshow(g) title('阈值为30') th=20;%设阈值为20 24 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,11); imshow(g) title('阈值为20') th=10;%设阈值为10 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,12); imshow(g) title('阈值为10') 1.5 f1=imread('E:\tu.bmp'); %图像导入 f2=rgb2gray(f1); [BW,thresh] = EDGE(f2,'sobel') BW = EDGE(f2,'sobel',0.01); subplot(3,3,1); imshow(BW); title('阈值0.01') BW = EDGE(f2,'sobel',0.02); subplot(3,3,2); imshow(BW); title('阈值0.02') 25 BW = EDGE(f2,'sobel',0.03); subplot(3,3,3); imshow(BW); title('阈值0.03') BW = EDGE(f2,'sobel',0.04); subplot(3,3,4); imshow(BW); title('阈值0.04') BW = EDGE(f2,'sobel',0.05); subplot(3,3,5); imshow(BW); title('阈值0.05') BW = EDGE(f2,'sobel',0.06); subplot(3,3,6); imshow(BW); title('阈值0.06') BW = EDGE(f2,'sobel',0.07); subplot(3,3,7); imshow(BW); title('阈值0.07') BW = EDGE(f2,'sobel',0.08); subplot(3,3,8); imshow(BW); title('阈值0.08') BW = EDGE(f2,'sobel',0.09); subplot(3,3,9); imshow(BW); title('阈值0.09') 1.6 I=imread('E:\tu.bmp'); %图像导入 imshow(I); title('源图像') 26 f=rgb2gray(I); f=double(f); [M N]=size(f); H=[-1 -1 -1;-1 8 -1;-1 -1 -1]; gg=zeros(M,N); for x=2:M-2 for y=2:N-2 gg(x,y)=f(x-1,y-1)-f(x,y-1)-f(x+1,y-1)-f(x-1,y)+8*f(x,y)-f(x+1,y)-f(x-1,y+1)-f(x,y+ 1)-f(x+1,y+1); end end gg=gg*255/max(gg(:)); %将卷积结果映射到0-255 th=120;%设阈值为120 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end figure subplot(3,4,1); imshow(g) title('阈值为120') th=110;%设阈值为110 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,2); imshow(g) 27 title('阈值为110') th=100;%设阈值为100 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,3); imshow(g) title('阈值为100') th=90;%设阈值为90 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,4); imshow(g) title('阈值为90') th=80;%设阈值为80 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; 28 end end end subplot(3,4,5); imshow(g) title('阈值为80') th=70;%设阈值为70 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,6); imshow(g) title('阈值为70') th=60;%设阈值为60 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,7); imshow(g) title('阈值为60') th=50;%设阈值为50 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; 29 else g(x,y)=0; end end end subplot(3,4,8); imshow(g) title('阈值为50') th=40;%设阈值为40 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,9); imshow(g) title('阈值为40') th=30;%设阈值为30 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,10); imshow(g) title('阈值为30') th=20;%设阈值为20 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) 30 g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,11); imshow(g) title('阈值为20') th=10;%设阈值为10 g=zeros(M,N); for x=1:M for y=1:N if(gg(x,y)>=th) g(x,y)=255; else g(x,y)=0; end end end subplot(3,4,12); imshow(g) title('阈值为10') 1.7 %Kirsch算子 f=imread('E:\tu.bmp'); %图像导入 subplot(2,3,1); imshow(f); title('源图像') f=rgb2gray(f); f=double(f); [M N]=size(f); g1=zeros(M,N); for x=2:M-1 for y=2:N-1 31 A0=f(x-1,y-1); A1=f(x-1,y); A2=f(x-1,y+1); A3=f(x,y+1); A4=f(x+1,y+1); A5=f(x,y+1); A6=f(x+1,y-1); A7=f(x,y-1); A=[A0 A1 A2 A3 A4 A5 A6 A7 A0 A1 A2 A3 A4 A5 A6 A7]; s=zeros(1,8); t=zeros(1,8); st=zeros(1,8); for i=1:8 s(1,i)=A(1,i)+A(1,i+1)+A(1,i+2); t(1,i)=A(1,i+3)+A(1,i+4)+A(1,i+5)+A(1,i+6)+A(1,i+7); st(1,i)=5*s(1,i)-3*t(1,i); end st=abs(st); g1(x,y)=max(1,max(st(:))); end end %图像与模板做卷积 g1=g1*255/max(g1(:)); %将卷积结果映射到0-255 th=125;%设阈值为125 g11=zeros(M,N); for x=1:M for y=1:N if(g1(x,y)>=th) g11(x,y)=255; else g11(x,y)=0; end end end subplot(2,3,2); imshow(g11) title('Kirsch-125') th=100;%设阈值为100 g11=zeros(M,N); for x=1:M for y=1:N if(g1(x,y)>=th) 32 g11(x,y)=255; else g11(x,y)=0; end end end subplot(2,3,3); imshow(g11) title('Kirsch-100') th=75;%设阈值为75 g11=zeros(M,N); for x=1:M for y=1:N if(g1(x,y)>=th) g11(x,y)=255; else g11(x,y)=0; end end end subplot(2,3,4); imshow(g11) title('Kirsch-75') th=50;%设阈值为50 g11=zeros(M,N); for x=1:M for y=1:N if(g1(x,y)>=th) g11(x,y)=255; else g11(x,y)=0; end end end subplot(2,3,5); imshow(g11) title('Kirsch-50') th=25;%设阈值为25 g11=zeros(M,N); for x=1:M for y=1:N 33 if(g1(x,y)>=th) g11(x,y)=255; else g11(x,y)=0; end end end subplot(2,3,6); imshow(g11) title('Kirsch-25') 1.8 f1=imread('E:\tu.bmp'); %图像导入 f2=rgb2gray(f1); [BW,thresh] = EDGE(f2,'log') BW = EDGE(f2,'log',0.0005); subplot(3,3,1); imshow(BW); title('阈值0.0005') BW = EDGE(f2,'log',0.0010); subplot(3,3,2); imshow(BW); title('阈值0.0010') BW = EDGE(f2,'log',0.0015); subplot(3,3,3); imshow(BW); title('阈值0.0015') BW = EDGE(f2,'log',0.0020); subplot(3,3,4); imshow(BW); title('阈值0.0020') BW = EDGE(f2,'log',0.0025); subplot(3,3,5); imshow(BW); title('阈值0.0025') BW = EDGE(f2,'log',0.0030); 34 subplot(3,3,6); imshow(BW); title('阈值0.0030') BW = EDGE(f2,'log',0.0035); subplot(3,3,7); imshow(BW); title('阈值0.0035') BW = EDGE(f2,'log',0.0040); subplot(3,3,8); imshow(BW); title('阈值0.0040') BW = EDGE(f2,'log',0.0045); subplot(3,3,9); imshow(BW); title('阈值0.0045') 35
/
本文档为【冠脉造影图像心血管边缘提取】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索