2016-03-08 3 views
0

В настоящее время я пытаюсь обнаружить оба; чашку и диск образа Глаукомы. Они, как эти два выделяются из остальной части изображения, они ярче, чем остальная часть изображения. Но чаша ярче диска, поэтому я могу только обнаружить чашку. Я хочу достичь, чтобы окружить оба; чашку и диск с двумя разными кругами. Чаша является самой яркой из изображений, а вторая - самой яркой. Как я это сделал?Использование opencv, как получить вторую самую яркую область изображения?

Вот мой код (. Только обнаруживает чашку и обводит его я»пытаюсь обнаружить как;. Кубок и диск, и окружить их обоих с различными кругами)

image = cv2.imread(args["image"]) 
orig = image.copy() 
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 

gray = cv2.GaussianBlur(gray, (args["radius"], args["radius"]), 0) 
(minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(gray) 
image = orig.copy() 
cv2.circle(image, maxLoc, args["radius"], (255, 0, 0), 2) 

cv2.namedWindow("Test", cv2.WINDOW_NORMAL) 
cv2.imshow("Test", image) 
cv2.waitKey(0) 

Я также пытаюсь сделать это без ввода радиуса вручную. Поделитесь, если у вас есть идея для этого.

Вот образец изображения Глаукомы. Самая яркая часть в круге - чаша, а больший круг вокруг нее - это диск. Here's a sample image of a Glaucoma showing cup and disc.

+0

1. попытайтесь сгруппировать свои пиксели в зависимости от их интенсивности, скажем, с помощью k-средств, и вы можете найти диск таким образом. 2. Похоже, что диск и остальная часть Глаукомы имеют четкий круговой край. Вы можете сначала рассчитать краевое изображение и найти круг в этом изображении. – DXM

+0

@DXM Как получить изображение края? Я пробовал, но я получаю край самой глаукомы. –

+0

Нарушение полностью темно? Вычислите маску для Глаукомы, вы можете попробовать применить ее к маске до или после обнаружения края. Если вы уже пытались обнаружить Canny edge, вы также можете попытаться просто вычислить градиент изображения, используя sobel или другого оператора. – DXM

ответ

0

У меня есть аналогичные проблемы с объектами отслеживания с некоторыми цветами. Мой подход был бы следующий:

  1. Использование threshold, удалось создать образ, где все черное -> 0 и диск и чашка белого цвета -> 255
  2. После того как вы эту часть сделали, используя moments, вы можете вычислить radious автоматически

In my repository у меня есть некоторый код (хотя это C++, потому что это был проект ROS), где я использую его для того, чтобы отслеживать синий объект.

Преимущество использования порога и моментов является то, что если вы изображение немного повернулся, с увеличением или даже в движении, вы можете отслеживать нужный объект и вычислить элементы, такие как радиус, центр и т.д.

Надежда это поможет вам!

+0

Это звучит как отличная идея, но что, если у меня есть изображение, где самая яркая часть не является ни диском, ни чашкой? В этом случае пороговое значение может не работать, не так ли? –

+0

Речь идет не о яркости, вам нужно выделить этот цвет, в данном случае: желтый. Я считаю, что это решение достаточно хорошо для вашей проблемы. –

Смежные вопросы