1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import nibabel as nib
- import numpy as np
- from matplotlib import pyplot as plt
- filepath_CT = "images/0381_1.nii.gz"
- all = nib.load(filepath_CT)
- info = all.header
- print(info)
- I_dataobject = all.dataobj
- I = np.array(I_dataobject)
- plt.figure()
- plt.title("Original")
- plt.imshow(np.rot90(I[:,:,26], k=3),cmap='gray')
- def normalize(image, MIN_BOUND, MAX_BOUND):
-
- image = (image - MIN_BOUND) / (MAX_BOUND - MIN_BOUND)
- image[image>1] = 1.
- image[image<0] = 0.
- return image
- nI = normalize(I, -1350, 150)
- plt.figure()
- plt.title("Normalizacija")
- plt.imshow(np.rot90(nI[:,:,26], k=3), cmap='gray')
- import nrrd
- filepath_mask = "masks/0381_1.nrrd"
- M, _ = nrrd.read(filepath_mask)
- plt.figure()
- plt.title("Vizualizacija maske")
- plt.imshow(np.rot90(M[:,:,26], k=3), cmap='gray')
- S = np.where(M==1, nI, M)
- plt.figure()
- plt.title("Segmentacija")
- plt.imshow(np.rot90(S[:,:,26], k=3),cmap='gray')
- from cv2 import resize
- def bound_box(img, slice_idx):
-
- I_slice = img[:,:,slice_idx]
- rows = np.any(I_slice, axis=1)
- cols = np.any(I_slice, axis=0)
- rmin, rmax = np.where(rows)[0][[0, -1]]
- cmin, cmax = np.where(cols)[0][[0, -1]]
- I_slice = I_slice[rmin:rmax, cmin:cmax]
- I_slice = np.transpose(I_slice[:, :, np.newaxis],axes = [2,0,1]).astype('float32')
- return I_slice
- bounded_slice = bound_box(S, 26)
- plt.figure()
- plt.title("Popravljeno vidno polje")
- plt.imshow(np.rot90(bounded_slice[0,:,:], k=3), cmap='gray')
|