コード例 #1
0
ファイル: baseline1.py プロジェクト: claudiovaliense/rsna
def data_target(dir, label):
    """Process data and attribuited label"""
    count = 0
    data = []
    target = []
    for file in cv.list_files(dir):
        file_name = dir + file
        #contour = process_file(file_name) # method snake

        image = lib.read_image(file_name)  # feature hematoma, utilize hu
        hematoma = lib.substance_interval(image, 40, 90)

        #data.append(contour.flatten())
        data.append(hematoma.flatten())
        #data.append(np.append(contour.flatten(),hematoma.flatten()))
        target.append(label)
        count += 1
        if count == amount_files:
            break
    return [data, target]
コード例 #2
0
def processing_thread(dir, files, label, id_core):
    features = []
    labels = []
    for file_name in files:
        # scaler = MinMaxScaler() # example minmax, scaler
        # hematoma = scaler.fit_transform(hematoma)

        norm = 'max'
        image = lib.read_image(dir + file_name)  # feature hematoma, utilize hu
        # print("image matrix size : {:.2f}MB".format(image.nbytes / (1024 * 1000.0)))
        # lib.plot('original', image)
        # selem = disk(1)
        # image = skimage.morphology.dilation(image, selem)
        # lib.plot('dilation', image)

        # features
        snake = process_file(dir + file_name)  # method snake
        hematoma = pre.normalize(lib.substance_interval(image, 30, 90),
                                 norm=norm).astype('float16')
        white_matter = pre.normalize(lib.substance_interval(image, 20, 30),
                                     norm=norm).astype('float16')
        ventriculo = pre.normalize(lib.substance_interval(image, 0, 15),
                                   norm=norm).astype('float16')
        white_tophat = pre.normalize(skimage.morphology.white_tophat(image),
                                     norm=norm).astype('float16')
        blood = pre.normalize(lib.substance_interval(image, 45, 65),
                              norm=norm).astype('float16')

        # x = np.concatenate((snake,hematoma,white_matter,ventriculo,white_tophat,blood))
        # print("XXData matrix size : {:.2f}MB".format(x.nbytes / (1024 * 1000.0)))

        # con_hem = hematoma +  ventriculo + white_tophat + blood
        # print("Data matrix size : {:.2f}MB".format(con_hem.nbytes / (1024 * 1000.0)))
        # con_hem = hematoma + white_matter + ventriculo
        # print("Data matrix size : {:.2f}MB".format(con_hem.nbytes / (1024 * 1000.0)))

        np.savez_compressed(label + 'features/snake/' + file_name, snake=snake)
        np.savez_compressed(label + 'features/hematoma/' + file_name,
                            hematoma=hematoma)
        np.savez_compressed(label + 'features/white_matter/' + file_name,
                            white_matter=white_matter)
        np.savez_compressed(label + 'features/ventriculo/' + file_name,
                            ventriculo=ventriculo)
        np.savez_compressed(label + 'features/white_tophat/' + file_name,
                            white_tophat=white_tophat)
        np.savez_compressed(label + 'features/blood/' + file_name, blood=blood)

        cv.calculate_process((amount_files) / n_cores)

        # lib.plot('eroted', eroded)
        '''edges = canny(image, sigma=3, low_threshold=10, high_threshold=50)
        hough_radii = np.arange(1, 10, 1)
        hough_res = hough_circle(edges, hough_radii)
        accums, cx, cy, radii = hough_circle_peaks(hough_res, hough_radii,total_num_peaks=3)
        # Draw them
        fig, ax = plt.subplots(ncols=1, nrows=1, figsize=(10, 4))
        image = color.gray2rgb(image)
        color.rgb2gray(image)
        for center_y, center_x, radius in zip(cy, cx, radii):
            circy, circx = circle_perimeter(center_y, center_x, radius, shape=image.shape)
            image[circy, circx] = (220, 20, 20)

        ax.imshow(image, cmap=plt.cm.gray)
        plt.show()

        lib.plot('sem rgb', color.rgb2gray(image))
        '''

        # plt.imshow(white_tophat, cmap=plt.cm.bone)
        # plt.title('white_tophat')
        # plt.show()

        # hematoma =lib.substance_interval(image, 30, 90)
        # white_matter = lib.substance_interval(image, 20, 30)

        # resultado ruim se adicionar. Teste em 80 imagens

        # snake_method2 = snake_GAC(dir + file_name)
        # bone =  pre.normalize(lib.substance_interval(image, 700, 3000), norm=norm)

        # print("aqui1")
        # multiotsu = threshold_multiotsu(image, classes=5) # melhora com o aumento de classe, mas piorou ao adicionar outras features
        # print("aqui")
        # regions_multi = pre.normalize(np.digitize(image, bins=multiotsu), norm=norm)
        '''  colorized, otsu, thresholds = lib.multiotsu(image, 3)
          mask_ossos = np.zeros((512, 512))
          mask_ossos[otsu == 2] = 1
          ossos = image * mask_ossos
          ossos = pre.normalize(ossos, norm=norm)'''

        # con_hem = np.append(snake,hematoma)
        # con_hem =  np.append(con_hem,white_matter)
        '''con_hem = snake + hematoma + white_matter + ventriculo + white_tophat + blood
コード例 #3
0
ファイル: main.py プロジェクト: claudiovaliense/rsna
import lib
import os

input_path = "dataset/epidural"
input_folder = os.fsencode(input_path)
files = os.listdir(input_folder)
files.sort()

slices = []

for file in files:
    # if os.fsdecode(file) == "ID_3580adc72.dcm": # "ID_635f084fc.dcm": # "ID_559b1d8f7.dcm": #"ID_894a589ad.dcm":
    if os.fsdecode(file) == "ID_0ed10ec08.dcm":
        file = os.fsdecode(file)
        filename = "{}/{}".format(input_path, file)
        image = lib.read_image(filename)
        lib.histogram(image, True)
        lib.plot("original: {} ".format(file), image)
        # features
        hematoma = lib.substance_interval(image, 40, 90)
        white_matter = lib.substance_interval(image, 20, 30)
        blood = lib.substance_interval(image, 30, 45)
        bone = lib.substance_interval(image, 600, 4000)

        #lib.plot("blood: {}".format(file), blood)
        #lib.plot("hematoma: {}".format(file), hematoma)

        lib.histogram(blood, True)
print("Done")