본문 바로가기

Python

Python으로 신호 푸리에 변환하는 방법 신호 처리를 하다 보면 가장 먼저 접하게 되는 개념이 '푸리에 변환'이다. 이번 글에서는 파이썬의 numpy를 통해 푸리에 변환하는 방법에 대해 정리하고자 한다. 그 전에... 푸리에 변환에 대한 이론적 배경을 정확하게 알고있는 게 아니라 틀린 부분이 있을 수 있다는 점을 미리 밝힙니다!! 푸리에 변환 (Fourier transform) 시간 영역에서 표현되는 신호를 주파수 영역으로 변환하여 다른 관점에서 신호를 분석하는 방법 Python에서 푸리에 변환을 하고 싶으면 np.fft.fft( ) 함수를 아래와 같이 이용하면 된다. import numpy as np import matplotlib.pyplot as plt fs = 100 t = np.arange(0, 3, 1 / fs) f1 = 35 f2 .. 더보기
Python으로 DICOM 파일 다루는 방법 DICOM 파일을 다룰 일이 생겨 공부 중이다. 지금 다루는 영상의 Modality가 CT이기 때문에 CT를 중심으로 정리해두고자 한다. 이번 글에서는 Hounsfield Unit (하우슨필드 유닛) Window Center, Window Width DICOM 파일 읽는 방법 에 대해 정리하도록 하겠다. Hounsfield Unit ? 우선 CT의 픽셀 값은 일반 RGB 이미지와는 다르다. RGB 이미지의 각 픽셀은 0 ~ 255의 값으로 이루어져 있지만, CT는 Hounsfield Unit (HU)라는 단위로 이루어져 있다. HU란 X 선이 몸을 투과할 때 감쇠되는 정도를 나타내는 단위이다. 물을 통과할 때를 0. 으로 두고 다른 부위의 감쇠정도를 상대적으로 표현한다. 이미 실험적(?)으로 정리되어 있.. 더보기
Python의 fileinput module로 파일 수정하는 방법 fileinput 모듈이라고 해서 크게 다른 건 없는 것 같다. 그냥 Python에서 파일 입출력할 때 쓰는 모듈인데 흔히 쓰는 open( ) 함수 말고 fileinput.input( ) 함수를 쓰는 거라 생각하면 된다. 그럼 왜 fileinput 이란 모듈을 따로 만들었으며 언제 사용하는 걸까?? 이렇게 저렇게 쓰다보니 fileinput을 사용하면 보다 간단하게 파일 수정을 할 수 있기 때문이란 생각을 하게 됐다. 아래와 같이 test_text.txt 파일이 있다고 가정하자. name : tube name : ryan name : apeach 그리고 형태는 유지시키면서 두 번째 줄의 "ryan"을 "라이언"으로 바꿔보도록 하자. open( )을 사용하면 불가능한 건 아니지만 fileinput.input.. 더보기
imgaug 라이브러리 사용 방법 classification이나 segmentation 작업을 위해 image augmentation을 하는 것은 그리 어려운 일이 아니다. 근데 object detection 영역으로 넘어오면 얘기가 달라진다. train image에 대해 augmentation을 진행할 때 ground truth도 같이 진행해줘야 하는데 이 과정이 까다롭기 때문이다. 예전에 잠깐 공부할 때는 flip, rotate, shift 등을 하나하나 직접 짜서 augmentation을 진행했었는데.. 우연히 회사 옆자리 연구원으로부터 imgaug 라이브러리를 알게되어 사용 방법을 정리하고자 한다. imgaug ? Image Augmentation을 위한 라이브러리다. 이곳에서 지원 augmentation 방법들을 확인할 수 있다.. 더보기
Python으로 지정 경로에 폴더 존재하는지 확인하고 없으면 폴더 생성하는 방법 간혹가다가 경로 설정을 해주면 해당 경로에 폴더가 존재하지 않는다는 에러를 만나게 된다. 이런 에러를 잡아주기 위한 코드라 할 수 있겠다. 핵심은 os.makedirs( ) 함수이데, 지정한 경로의 상위 경로마저 없는 경우 그것까지 만들어준다. import os def makedirs(path): try: os.makedirs(path) except OSError: if not os.path.isdir(path): raise​ 더보기
Anaconda, Python, CMD, 명령어 정리 1. 가상환경 생성 >>> conda create --name 원하는이름 python=원하는버전 (ex) conda create --name gpu1.12.0 python=3.6.5 2. 가상환경 리스트 확인 >>> conda info --envs 3. 가상환경 활성화 >>> conda activate 가상환경이름 (ex) conda activate gpu1.12.0 4. 모듈 다운로드 >>> conda install 모듈이름 (ex) conda install tensorflow-gpu=1.12.0 5. Dependencies 없이 원하는 모듈만 다운로드 >>> conda install --no-deps 모듈이름 or pip install --no-deps 모듈이름 (ex) conda install --.. 더보기
Python file 우클릭 시 context menu에 Anaconda 가상환경 idle 뜨게 하는 방법 파이썬을 설치하면 기본적으로 파이썬 파일 우클릭 시 context menu에 [ Edit with IDLE ] 이 생겨 바로 열어줄 수 있다. 근데 이게 아나콘다 가상환경을 사용하는 경우에는 안 뜨더라. 그래서 위 사진처럼 [ Edit with ENV -> Edit with GPU1.12.0 ] 을 통해 열어줄 수 있는 방법이 있나 하고 찾아봤다. 설정 방법은 다음과 같다. 실행 창에 regedit 입력 후 레지스트리 편집기를 띄운다. 컴퓨터\HKEY_CLASSES_ROOT\Python.File 을 찾는다. 기존에 있는 editwithidle / editwithidle\shell / editwithidle\shell\edit36 / editwithidle\shell\edit36\command 와 똑같이 .. 더보기
Python으로 시스템 변수 추가하는 방법 Code 1 2 import sys sys.path.append('C:/Users/Ballentain/Desktop/test') cs 설명 시스템 변수에 경로를 추가하면 무엇이 좋냐고 물어본다면, 파일을 import할 때 경로 신경 안 쓰고 바로 import해줄 수 있어서 좋다고 답할 수 있을 것 같다. 말로는 이해가 힘들다. 예제를 통해 살펴보자. test 폴더에는 train.py 와 obj 폴더가 들어있고, obj 폴더에는 trainer.py가 들어있다. [ train.py ]는 obj의 trainer.py를 import하게끔만 설정해 놨고, [ trainer.py ]는 실행 Hi 를 출력하도록 설정해놨다. 위와 같은 구조 아래에서 train.py를 실행하면 trainer.py가 import 되어 에.. 더보기