【问题标题】:Removing concentric circles from image in matlab从matlab中的图像中删除同心圆
【发布时间】:2015-11-12 18:53:16
【问题描述】:

我有我想要处理的 OCT 成像数据:

我想删除图像中心以同心圆为界的所有点。到目前为止,我手动指定了最大圆的半径并将圆区域内的所有点设置为黑色。这些圆圈的大小可能会因图像源和伪影而异,因此我正在尝试找到一种更理想的方法来执行此移除操作。

我最初认为我可以使用 imfindcircles() 来识别这些圆,但无论指定半径如何,该算法都无法检测到其中的大部分。依赖连接组件(bwareaopen、regionprops)的方法也会失败,因为同心圆似乎连接到更大的结构。

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

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

这应该更容易处理。有人有什么想法吗?

【问题讨论】:

  • 你放错图片了。
  • 这很尴尬,已解决
  • 笛卡尔到极坐标的变换不是一个好主意。它需要在你不知道的圆心放置杆子的情况下进行。
  • 圆心将始终位于使用此成像模式生成的图像的中心。抱歉,我应该在我的原始帖子中指定。

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


【解决方案1】:

水平累积所有图像列。然后垂直轮廓将使您更容易找到圆半径(它们显示为峰)。知道了外半径,就可以从原始图像中提取一个圆形的 ROI。

【讨论】:

    猜你喜欢
    • 2020-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多