【问题标题】:how to draw rectangle on Brain tumor using open cv?如何使用opencv在脑肿瘤上绘制矩形?
【发布时间】:2019-09-13 13:35:00
【问题描述】:

我想在我的脑肿瘤图像数据集上以绿色绘制矩形或边界框以突出显示图像中的肿瘤。什么是最短的方法?我不想分割肿瘤。

我试过 openev 绘制矩形功能,但它不起作用。我也找到了 Active Contour 和 Canny 算法,但这也不起作用。

    import cv2 
    import numpy as np 
    image = cv2.imread('12.png')
    cv2.imshow('Input Image', image) 
    cv2.waitKey(0) 
    gray =cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    # Canny Edges edged = cv2.Canny(gray, 30, 200) 
    # cv2.imshow('Canny Edges', edged) 
    # cv2.waitKey(0)

    _, contours, hierarchy = cv2.findContours(edged, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) 
    cv2.imshow('Canny Edges after Contouring',edged) 
    cv2.waitKey(0) 
    print("Number of contours found = " +str(len(contours))) 
    cv2.drawContours(image, contours, -1, (0, 255, 0),3) 
    cv2.imshow('Contours', image) 
    cv2.waitKey(0)
    cv2.destroyAllWindows()

我希望肿瘤部分应该在整个图像的一个框中。图像的其余部分应该与我的实际大脑图像相同。通过简单的代码而不是整个算法,肿瘤部分周围只有一个绿色框。

【问题讨论】:

  • 你的输入图片在哪里?
  • @mamoona 删除这些>,将您的代码放入三重```(在开头和结尾),将链接移动到代码sn-p之外的图像
  • 我认为这不太可能。
  • @mamoona 因为图像上要检测的对象没有很明显的特征要检测,尤其是最后两张图像,所以很难将肿瘤与骨骼分开。但是第一个没问题。你只需要寻找一个更明亮的区域。
  • 如果不对图像进行分段,您将无法存档。您的头骨与您的肿瘤具有非常相似的强度,这就是为什么简单的阈值化不起作用的原因。

标签: python image opencv image-processing boundary


【解决方案1】:

根据对此答案的评论,我更新了我的答案,我认为这仍然是一个深度学习问题,但类型不同。

如果您需要沿其轮廓分割肿瘤,一种方法可能是 Mask R-CNN(1)(您可以阅读 2017 年发表的原始论文)。该方法允许沿其轮廓进行图像分割。 Here您可以找到该方法的示例实现。

就我从图像中看到的,您必须处理灰度图像,并且通过简单的方法可能难以从场景的其余部分中分割出肿瘤,这里我同意@BahramdunAdil。因此,我怀疑训练可能需要大量的数据和时间。

祝你好运!

(1) 何凯明等。 “面具r-cnn。” IEEE 计算机视觉国际会议论文集。 2017.

【讨论】:

  • 您好,感谢您的评论,我已经使用 CNN 对我的图像进行了分类。我对你提到的事情有所了解。用 CNN 训练了整个图像,它确实很好地预测了我的整个数据集。问题是我只想突出显示肿瘤区域,以便在屏幕上更好地解释整个图像中的肿瘤在哪里。我正在寻找适用于 5-10 个图像的任何简单技术,这些图像很容易检测到,比如不是肿瘤不在骨骼区域。类似于这个stackoverflow.com/questions/27647664/…
  • @mamoona 谢谢你的澄清,我已经更新了我的答案
  • 谢谢你,现在你的回答似乎很有趣,并且解决了我的问题。我一定会看的。
猜你喜欢
  • 2020-08-04
  • 2017-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-07
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多