| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import pydicom
- import numpy as np
- import matplotlib.pyplot as plt
- import os
- import csv
- import math
- import wavelet
- import network
- import keras
- import tensorflow as tf
- import random
- actions = [ lambda img: wavelet.rotate(img, 1)
- , lambda img: wavelet.rotate(img, 2)
- , lambda img: wavelet.rotate(img, 3)
- , lambda img: wavelet.rotate(img, 4)
- , lambda img: wavelet.rotate(img, 5)
- , lambda img: wavelet.rotate(img, 6)
- , lambda img: wavelet.rotate(img, 7)
- ]
- genData = []
- def blur(img):
- blured = img.copy()
- w = img.shape[1]
- h = img.shape[0]
- mx = math.sqrt(8)
- m = [(x, y, mx - math.sqrt((x*x) + (y*y))) for y in [-1,0,1] for x in [-1,0,1] ]
- s = sum([x[2] for x in m])
- for y in range(1, h - 1):
- for x in range(1, w - 1):
- v = sum([w * img[y + a, x + b] for a, b, w in m]) / s
- blured[y, x] = v
- return blured
- def histogram(fileName, img):
- h = [0 for _ in range(4096)]
- for row in img:
- for v in row:
- h[max(0, min(4095, v))] += 1
- h = np.array([float(v) for v in h])
- np.save(fileName, h, allow_pickle=False)
- pos = 0
- first = True
- with open("mimx.csv") as f:
- for row in csv.reader(f, delimiter=","):
- if first or len(row) < 9:
- first = False
- continue
- n = f"{row[2]}"
- while len(n) < 4:
- n = f"0{n}"
- fileName = f"Proband {row[0]}/SE00000{row[1]}/{row[0]}_{n}.dcm"
- print(f"{fileName}", end="\r")
- y = np.array([float(row[7]), float(row[8]), float(row[9]), float(row[10])])
- #np.save(f"{fileName}_labels.npy", y, allow_pickle=False)
- img = pydicom.dcmread(fileName).pixel_array
- #images = []
- #for action in actions:
- # w = wavelet.refine(action(img))
- # images.append(1.0 * w.reshape((512 * 512,)))
- #
- #images = np.array(images)
- #np.save(f"{fileName}_images.npy", images, allow_pickle=False)
-
- #np.save(f"{fileName}_plainImage.npy", img, allow_pickle=False)
- #w = wavelet.refine(img)
- #np.save(f"{fileName}_wavelet.npy", img, allow_pickle=False)
- #histogram(f"{fileName}_histogram.npy", img)
- blured = blur(img)
- np.save(f"{fileName}_blured.npy", blured, allow_pickle=False)
- histogram(f"{fileName}_blured_histo_diff.npy", np.abs(img - blured))
- print()
- print("done")
|