import json
import cv2
import numpy as np
import nibabel as nib
from cc.openstring.dcm2nii.core import ConfigManager
def loadNii():
patCtNiiPath = '/home/goodsave/Project/Company/deep-learning/AutoTrain/ParaViewGlance/Array2Nii/config/label.nii.gz'
ctNiiData = np.array(nib.load(patCtNiiPath).dataobj)
pass
def arrayToNii():
inputArray = ConfigManager.getInputArray()
sliceNum = int(len(inputArray) / (512 * 512 * 1.0))
inputArray = np.array(inputArray, np.uint8)
inputArray = inputArray.reshape(sliceNum, 512, 512)
niiData = np.zeros(shape=[512, 512, sliceNum])
for index in range(0, sliceNum): niiData[:, :, index] = inputArray[index, :, :]
affine = np.diag([-1, -1, 1, 1])
niiImg = nib.Nifti1Image(niiData, affine)
outputNiiPath = '%s/config/test.nii' % (ConfigManager.getSoftDir())
nib.save(niiImg, outputNiiPath)
def drawContour():
contourData = ConfigManager.getConfig("contourData.json").get("contour")
img = np.zeros((512, 512), np.uint8)
cv2.drawContours(img, np.asarray(contourData), -1, [255, 255, 255], thickness=-1)
imgPath = "%s/output/test.png" % (ConfigManager.getSoftDir())
cv2.imwrite(imgPath, img)
print(contourData)
def findContour():
imgPath = "%s/output/test.png" % (ConfigManager.getSoftDir())
img = cv2.imread(imgPath, -1)
contours, _ = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
print(contours)
img = np.zeros((512, 512), np.uint8)
cv2.drawContours(img, contours, -1, [255, 255, 255], thickness=-1)
imgPath = "%s/output/test2.png" % (ConfigManager.getSoftDir())
cv2.imwrite(imgPath, img)
if __name__ == '__main__':
drawContour()
findContour()