2017-04-16 134 views
3

我試圖在Open CV中用斑點檢測來識別腦腫瘤,但迄今爲止,Open CV僅檢測腦部MRIs中的微小圓圈,但從未檢測到腫瘤本身。打開簡歷(Python) - 腦腫瘤異常形狀斑點檢測

下面的代碼:

import cv2 
from cv2 import SimpleBlobDetector_create, SimpleBlobDetector_Params 
import numpy as np 

# Read image 
def blobber(filename): 
    im = cv2.imread(filename, cv2.IMREAD_GRAYSCALE) 

    # Set up the detector with default parameters. 
    detector = cv2.SimpleBlobDetector_create() 

    params = cv2.SimpleBlobDetector_Params() 

    # Filter by Area. 
    params.filterByArea = True 
    params.minArea = 50 

    # Filter by Circularity 
    params.filterByCircularity = True 
    params.minCircularity = 0 

    # Filter by Convexity 
    params.filterByConvexity = True 
    params.minConvexity = 0.1 

    # Create a detector with the parameters 
    ver = (cv2.__version__).split('.') 
    if int(ver[0]) < 3 : 
     detector = cv2.SimpleBlobDetector(params) 
    else : 
     detector = cv2.SimpleBlobDetector_create(params) 

    # Detect blobs. 
    keypoints = detector.detect(im) 

    # Draw detected blobs as red circles. 
    # cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS ensures the size of the circle corresponds to the size of blob 
    im_with_keypoints = cv2.drawKeypoints(im,keypoints,np.array([]),(0,0,255),cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) 

    # Show keypoints 
    cv2.imshow("Keypoints", im_with_keypoints) 
    cv2.waitKey(0) 

這裏的時候我喂程序AB的圖像/ W對比腦(我對比使大腦的腫瘤會出現在黑色發生了什麼,以及大腦的休息將大多是白色的):

腫瘤不是一個完美的圓形,無論如何,但它顯然是大腦中最大的「斑點」。打開簡歷無法拿起它,我懷疑是因爲它有一個黑色的外殼和一個白色的核心。

只有當我選擇一個更容易分辨腫瘤,沒有一個大的白色內芯,可以將它拿起腫瘤。

有什麼建議嗎?我需要能夠從原始圖片中剝離這些斑點(一旦它們準確工作),並使用它們的關鍵點從每個切片中的2D腫瘤中重建大腦中的整個3D腫瘤。我離這一步有點遠,但這個斑點檢測器問題是2D和3D之間的關鍵環節。感謝所有幫助!

+0

我不是醫生,但你能上傳另一張圖片說明腫瘤的位置? –

+1

你的意思是像腫瘤醫生對腫瘤位置的註釋?如果這就是你的意思,我無法爲這組MR掃描找到它。 –

+0

您可以嘗試不同的方法,而不是使用二進制圖像... –

回答

0

可能最大的斑點是頭骨本身。 如果你分散最大的斑點,並保持下一個大件使用輪廓作爲外部