Open CVでブロブ検出の脳腫瘍を特定しようとしていますが、これまでのところ、Open CVは脳MRIの小さなサークルのみを検出しますが、 。ここでOpen CV(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の対比脳の画像を送るとき(私は腫瘍が黒で表示されますので、脳を対比し、脳の他の部分に何が起こるかですほとんど白です):
腫瘍は完全な円ではありませんが、明らかに脳の中で最も大きな「ブロブ」です。オープンCVはそれを拾うことができません、それは黒い外殻と白いコアを持っていると思われます。
私はより多くの区別可能な腫瘍を選択した場合のみ、大きな白いインナーコアなしで、それは腫瘍を拾うことができます。
アドバイスはありますか?私は元の画像からこれらのブロブを(一度正確に動作するように)はがすことができ、各スライスの2D腫瘍から脳の3D腫瘍全体を再構成するためにキーポイントを使用する必要があります。私はそのステップから少し離れていますが、このブロブ検出器の問題は2Dと3Dの間の重要なリンクです。すべての助けを感謝します!
私は医者ではありませんが、腫瘍の位置を示す別の写真をアップロードできますか? –
あなたは腫瘍がどこにあるの腫瘍専門医の注釈のような意味ですか?それがあなたが意味するものなら、私はこの一連のMRスキャンでは見つけられません。 –
バイナリイメージを使用するのではなく、別のアプローチを試みることができます。 –