欢迎来到天天文库
浏览记录
ID:38780789
大小:17.55 KB
页数:5页
时间:2019-06-19
《在itk下canny水平集方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在itk下canny水平集方法itklevelsetsegementation图像分割水平集 1.canny采用的是双阈值原理,双阈值算法对非极大值抑制图象作用两个阈值τ1和τ2,且2τ1≈τ2,从而可以得到两个阈值边缘图象N1[i,j]和N2[i,j]。由于N2[i,j]使用高阈值得到,因而含有很少的假边缘,但有间断(不闭合)。双阈值法要在N2[i,j]中把边缘连接成轮廓,当到达轮廓的端点时,该算法就在N1[i,j]的8邻点位置寻找可以连接到轮廓上的边缘,这样,算法不断地在N1[i,j]中收集边缘,直到将N2[i,j]连接起来为止。所以在本例的
2、输入图像中还有幅来自thresholdlevelset的结果,作为小阈值的(即N1)。 2.等值面问题 在thresholdlevelset滤波中,等值面Isosurface为0,而在canny中为127.5(均是对同一幅图像白质部分的分割) 答:先看看等值面是什么 TheIsoSurfaceValueindicateswhichvalueintheinputrepresentstheinterfaceofinterest. Bydefault,thisvalueiszero. Whenthesolverinitializes,itwillsubtr
3、acttheIsoSurfaceValuefromallvalues,intheinput,shiftingtheisosurfaceofinteresttozerointheoutput.Thisimageisacopyoftheinputwithm_IsoSurfaceValuesubtractedfromeachpixel. Thiswayweonlyneedtoconsiderthezerolevelsetinour*calculations. Makestheimplementationeasierandmoreefficient.即在设定
4、一个等值面后,将会在处理图像之前对原图的每个像素减去等值面这个值,而等值面是小于但接近与图像中感兴趣部分的灰度值的,这样一减去后,20-127.5=0150-127.5>0即感兴趣的部分呈现出来了而不要的部分成了黑色的背景色。那为什么threshold中的等值面设置为0呢??这个是因为threshold本身就是根据图像的原有灰度信息来设置阈值空间的,故这里不对原图像的灰度值进行改变!=========================================================================*/#ifdefined
5、(_MSC_VER)#pragmawarning(disable:4786)#endif#ifdef__BORLANDC__#defineITK_LEAN_AND_MEAN#endif// SoftwareGuide:BeginCommandLineArgs// INPUTS:{BrainProtonDensitySlice.png},{ThresholdSegmentationLevelSetImageFilterVentricle.png}// OUTPUTS:{CannySegmentationLevelSetImageFilterVe
6、ntricle1.png}// 7.00.110.0127.515#include"itkImage.h"//SoftwareGuide:BeginCodeSnippet#include"itkCannySegmentationLevelSetImageFilter.h"#include"itkGradientAnisotropicDiffusionImageFilter.h"//SoftwareGuide:EndCodeSnippet#include"itkFastMarchingImageFilter.h"#include"itkBinary
7、ThresholdImageFilter.h"#include"itkImageFileReader.h"#include"itkImageFileWriter.h"#include"itkZeroCrossingImageFilter.h"intmain(intargc,char*argv[]){ if(argc<9) { std::cerr<<"MissingParameters"<8、elOutputImage"; std::cerr<<"CannyThreshold"; std::
8、elOutputImage"; std::cerr<<"CannyThreshold"; std::
此文档下载收益归作者所有