在matlab中从图像中删除同心圆

时间:2015-11-12 18:53:17

标签: matlab image-segmentation polar-coordinates connected-components tomography-reconstruction

我有OCT成像数据,我试图操纵:

enter image description here

我想删除图像中心的同心圆所包围的所有点。到目前为止,我手动指定了最大圆的半径,并将圆圈区域内的所有点都设置为黑色。这些圆圈大小可能会因图像来源而异,但由于人为因素,因此我正在尝试找到更理想的方法来执行此移除。

我原本以为我可以使用imfindcircles()来识别这些圆圈,但是无论指定的半径如何,算法都无法检测到大部分圆圈。依赖于连通组件(bwareaopen,regionprops)的方法也会失败,因为同心圆似乎与更大的结构相连。

我有一个想法是我可以转换为极坐标,因为同心圆的中心将始终位于图像的中心,从而生成此图像:

width = 512
greyImg = ImToPolar(rgb2gray(rgb_img), 0, 1, width, width);

enter image description here

这应该更容易处理。有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

水平累积所有图像列。然后垂直剖面将允许您更容易地找到圆半径(它们显示为峰)。知道外部半径,您可以从原始图像中提取圆形ROI。

enter image description here