【发布时间】: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