医学图像处理案例(一)——基于CT图像的肺分割

2020-06-29 11:56:44 浏览数 (1)

目前深度学习在图像上有了突破性的发展,但是传统的图像处理算法在特定的场景下还是有很多应用的,今天我将分享在CT图像上来进行肺分割,并通过Opencv来实现。

1、用大津阈值法进行分割

由于CT图像特点,采用大津阈值法就可以实现将肺组织和人体骨骼脂肪分离开。

代码:cv::threshold(inputMat, outputMat, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);

2、去除背景目标

从上面的分割结果可以看到,背景跟肺组织不是连通的区域,因此我们可以通过连通域分析去除与背景相连通的区域。代码:

cv::copyMakeBorder(inputMat, exapndMat, 3, 3, 3, 3, cv::BORDER_CONSTANT, cv::Scalar(0));

cv::floodFill(exapndMat, cv::Point(0, 0), cv::Scalar(255));

cv::Mat maskMat = ~exapndMat(cv::Rect(3, 3, inputMat.cols, inputMat.rows));

3、去除气管,噪声

气管和噪声区域都不是很大,我们通过设置区域面积大小来去除气管和噪声。

4、重构肺轮廓边缘

从上图可以看到,肺的边缘会有一些凹陷瑕疵,所以我们通过形态学闭操作来填补这些缺陷。代码:cv::morphologyEx(grayscale, MatOut, cv::MORPH_CLOSE, elemnt);

5、最后得到肺组织区域

0 人点赞