2017-02-17 4 views
1

Я использую набор данных MIAS для маммографии рака молочной железы. Данные доступны здесь: http://peipa.essex.ac.uk/pix/mias/медицинская сегментация изображения с cv2

, например, изображение выглядит следующим образом:

import cv2 
import numpy as np 

img = cv2.imread("mdb168.pgm",0) 

import matplotlib.pyplot as plt 

plt.imshow(img, cmap="gray") 

enter image description here

Я хочу, чтобы удалить все артефакты и ненужные части изображения.

Чтобы сделать это, я первый бинаризации изображения

ret,thresh1 = cv2.threshold(img,0,255,cv2.THRESH_BINARY) 
plt.imshow(thresh1, cmap="gray") 

enter image description here

использование открытие

kernel = np.ones((20,20),np.uint8) 
opening = cv2.morphologyEx(thresh1, cv2.MORPH_OPEN, kernel) 
plt.imshow(opening, cmap="gray") 

enter image description here

затем эрозии

kernel = np.ones((120,120),np.uint8) 
erosion = cv2.erode(opening,kernel,iterations = 1) 
plt.imshow(erosion, cmap="gray") 

enter image description here

затем слейте эту маску с оригинальным изображением

merged = cv2.bitwise_and(img, img , mask=erosion) 
plt.imshow(merged, cmap="gray") 

enter image description here

Я сейчас пытаюсь удалить грудные мышцы в верхней левой части экрана. В этой публикации: https://www.ncbi.nlm.nih.gov/pubmed/26742491 они используют один и тот же набор данных и делают это с помощью «посевной области». Однако кода нет, и я не смог найти его в opencv.

Я мог бы добиться аналогичного результата, повторив развод/эрозию и т. Д., Но я ищу более обобщаемое решение. Кроме того, некоторые из этих изображений не показывают мышцы, и это также должно быть обнаружено.

+0

К сожалению, в opencv отсутствует алгоритм расширения региона, но вы можете создать его. Просто инициализируйте начальную точку, верхний и нижний порог и должны работать, итерации по изображению. [Это] (http://stackoverflow.com/questions/14416511/seeded-region-growing-with-opencv) –

ответ

0

Я хотел бы использовать следующий подход:

  1. (по желанию) я заменил бы открытие и эрозию с отверстием по реконструкциями < => эрозии с последующим геодезической дилатацией. Он сохранит исходную форму, а затем вы сохраните большую рентабельность.
  2. Фильтр свертки (гауссовский или простой средний), чтобы сгладить изображение
  3. Большая белая верхняя часть шляпы, чтобы обнаружить яркую зону.
  4. Затем вы вычитаете результат верхней шляпы на исходное изображение.
+0

У вас есть пример для метода верхней шляпы? Я читаю http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.html, но я не понимаю, как это работает – spore234

+0

Вот он: https: // ru.wikipedia.org/wiki/Top-hat_transform В вашем примере это просто Image-Opening (Image), и вот иллюстрация http://www.aishack.in/static/img/tut/morphology-tophat.jpg – FiReTiTi

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