Я использую набор данных MIAS маммографических изображений рака молочной железы. Данные доступны здесь: http://peipa.essex.ac.uk/pix/mias/
например, изображение выглядит так:
import cv2
import numpy as np
img = cv2.imread("mdb168.pgm",0)
import matplotlib.pyplot as plt
plt.imshow(img, cmap="gray")
Я хочу удалить все артефакты и ненужные части изображения.
Для этого я сначала бинаризую изображение
ret,thresh1 = cv2.threshold(img,0,255,cv2.THRESH_BINARY)
plt.imshow(thresh1, cmap="gray")
использовать открытие
kernel = np.ones((20,20),np.uint8)
opening = cv2.morphologyEx(thresh1, cv2.MORPH_OPEN, kernel)
plt.imshow(opening, cmap="gray")
затем эрозия
kernel = np.ones((120,120),np.uint8)
erosion = cv2.erode(opening,kernel,iterations = 1)
plt.imshow(erosion, cmap="gray")
затем объедините эту маску с исходным изображением
merged = cv2.bitwise_and(img, img , mask=erosion)
plt.imshow(merged, cmap="gray")
Я сейчас пытаюсь удалить грудную мышцу в верхней левой области. В этой публикации: https://www.ncbi.nlm.nih.gov/pubmed/26742491 они используют точно такой же набор данных и делают это с помощью «выращивания засеянной области». Однако кода нет, и я не смог найти его в opencv.
Я мог бы добиться аналогичного результата, снова выполнив расширение / эрозию и т. Д., Но я ищу более универсальное решение. Кроме того, на некоторых из этих изображений мышцы не видны, и это тоже следует обнаружить.