Category: Python

  • 변수 존재 여부 확인

    변수 A가 존재하는지 확인하는 방법. 나는 globals()을 이용했다. 사소한 주의점은 코딩할 때에는 변수를 따옴표로 지정해 주어야 한다.

    'A' in globals()
  • blank mp3 만들기

    Bing 에 물어봤더니 친절히 다음 코드를 알려 주었다. 아쉬운 점은 ffmpeg 가 설치된 환경에서 정상적으로 동작한다는 것을 알려주지는 않았다.

    from pydub import AudioSegment
    
    # create 1 second of blank audio
    blank = AudioSegment.silent(duration=1000)
    
    # export the blank audio as an mp3 file
    blank.export("blank.mp3", format="mp3")

  • HU로 변환하기

    DICOM 이미지의 값을 HU로 변환하는 방법.

    import pydicom
    dicom = pydicom.dcmread(filepath)
    dicom_hu = dicom.pixel_array * dicom.RescaleSlope + dicom.RescaleIntercept

    CT의 경우 slope 이 1이고 intercept 가 -1024이다. 즉, 수직 이동만 하는 것이다. 하지만 이렇게 변환해서 하는게 훨씬 더 academic 한 것 같다.

  • numpy 3d array, matplotlib

    2d array라면 matplotlib에서 plot이 잘 그려진다. 그런데 3d array라면 오류가 발생한다. 1차원 값으로 분리해줘야 한다. 여러 방법을 시도해 봤는데 numpy.nonzero를 이용한 방법이 간결하게 먹힌다. 색상 정보는 나에게 중요한게 아니라서 이 방법이 좋았다.

    dcm_x,dcm_y,dcm_z = blk.nonzero()
    dcm_color = numpy.random.rand(len(dcm_x))
    
    fig = plt.figure(figsize=(10, 10))
    
    ax = fig.add_subplot(projection='3d')
    ax.set_zlim3d(-600, 0)
    ax.view_init(30, 145)
    ax.scatter(dcm_x,dcm_y,-dcm_z,c=dcm_color)
    plt.savefig("/root/" + i +".png")