我正在使用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中找不到。
我可以通过再次进行扩张/侵蚀等来获得类似的结果,但我正在寻找一种更通用的解决方案。 此外,其中一些图像没有显示肌肉,这也应该被检测到。
答案 0 :(得分:0)
我会使用以下方法: