아나콘다 32bit 개발환경을 사용하는 중에 pip install 을 수행하다가 기존의 32bit 개발환경에서 64bit로 전환되는 경우가 발생한다. dependency 때문에 변경되는데 install 할때 변경되는 package의 정보를 잘 확인해야 할 것 같다. 이런 문제를 없애기 위해서는 32bit 가상환경에서 수행할 때는 anaconda 의 환경변수를 꼭 입력해서 하는 것이 문제를 예방할 것 같다. 32Bit 환경 변경 > set CONDA_FORCE_32BIT=1 그리고 필요시에는 가상환경의 platform 정보를 확인할 수 있다. import platform print(platform.architecture()) Openssl 에러가 발생하거나 Win32 가 아닌 경우 다시 dependency..
Node.js 에서 디버깅할 때 nodemon 으로 실행하면 코드 변경이 발생할 때 서버를 다시 시작해준다. 이런것이 개발환경 구축할 때 매우 편리하다. PyCharm + Nodemon 공식문서 내용 그런 의미에서 nodemon 으로 코드 모니터링과 pycharm 의 디버깅의 조합을 구성하고 싶었다. PyCharm 의 공식문서에 나와있는 사용법이다. Running and debugging Node.js | PyCharm (jetbrains.com) Running and debugging Node.js | PyCharm www.jetbrains.com 간략하게 정리하면 package.json 의 script에서 nodemon 실행문을 넣는다. terminal에서 npm script-command 를 수행한..
음계에서 음과 음의 간격의 크기를 음정이라고 배웠습니다. [음정] 이번에는 음정의 자리를 바꿨을 때 나타나는 음정의 변화인 자리바꿈 음정(Inverted intervals)를 정리하고자 합니다. 자리바꿈 음정은 간단히 첫음과 둘째음의 위치를 바꿨을 때 나타나는 음정입니다. 자리바꿈 음정은 기본 음정을 알면 쉽게 계산할 수 있습니다. 1. 음정 도수의 변화 자리바꿈으로 음정이 바뀌었을 때 알아야 하는 것이 숫자 9입니다. 숫자 9는 전과 후의 음정의 숫자를 합쳤을 때의 숫자입니다. 예로 4도였던 음을 자리바꿈하면 9 - 4 = 5, 5도가 됩니다. 숫자 9만 기억하고 진짜 음전변화를 봐보도록 하죠~ 2. 완전음정 ↔ 완전음정 완전 음정은 자리바뀌어도 똑같이 완전음정이 됩니다. 완전4도의 경우는 완전음정을 ..
1. 3화음이란? 서로 다른 3개의 음이 모여서 화음을 이루는 것입니다. 대부분이 알고 있는 '도미솔' 과 같은 대표적인 음의 구성을 3화음이라고 합니다. 2. 음의 구성 화음에서 사용되는 3개의 음은 음의 위치에 따라 불리는 명칭이 있습니다. 근음이 화음의 베이스가 되는 음이고, 근음을 기준으로 화음의 코드를 부릅니다. 위의 음은 도-미-솔 C-E-G 이므로 C코드가 됩니다. 3. 화음의 종류 화음은 음정에서 배웠던 음의 간격을 3화음에 어떻게 구성하느냐에 따라서 종류가 나뉩니다. 장3화음 (Major triad) : 장3도 + 단3도 단3화음 (Minor triad) : 단3도 + 장3도 증3화음 (Augmented triad) : 장3도 + 장3도 감3화음 (Diminished triad) : 단3..
이번에는 VTK의 Pipeline Execution에 구조를 분석하고자 합니다. 시작하기에 앞서 VTK에서 visualization 에서 처리하는 데이터 모델 들에 대한 간단한 용어 정리가 필요합니다. 1. 용어 정리 Proecss Object : Process 객체는 입력데이터에 대해 출력 데이터를 생성하는 객체를 말하며, 입출력 구조에 따라 Source, Filter, Mapper object 로 나뉩니다. Source Object : 입력데이터 없이 출력 데이터를 만들도록 처리하는 객체 Filter Object: 한개 이상의 입력데이터를 기반으로 한개 이상의 출력데이터를 만들도록 처리하는 객체 Sink (Mapper) Object: 출력 데이터는 없이 한개 이상의 입력데이터만을 이용하여 처리하는 객..
음계는 알다시피 7개의 음계로 구성되어 있으면서 반음계로는 12개가 있습니다. 여기에서 음정이란 음과 음사이의 간격이 얼마나 나는지를 이해하는 단위를 말합니다. 그래서 음정이란 용어보다는 interval 이 바로 이해가 되기도 합니다. 1.음정 도수 기본 음정의 단위는 '도'로 표현하며 계산하는 방법은 직관적으로 쉽습니다. 기준이 되는 음을 C로 할 때 각 음들간의 음정은 본인 음을 1도로 기준해서 8도까지 구성합니다. 보면 알다시피 기본 음정은 음계의 온음과 반음을 구분하지 않고 온음계를 기준으로 계산합니다. 2. 음정 파해치기 방금은 음정을 계산할 때 온음과 반음을 구분하지 않고 계산한다고 했습니다. 그런데 그렇게 되다면 무슨 문제가 있을까요?? 아래의 예를 봅시다. C - E : 3도 D - F :..
이전 글에서 설명한대로 음계는 장음계와 단음계로 구분합니다. 단음계의 경우 장음계와 다르게 우리가 음을 들을 때 살짝 어색하게 들리는 음들이 있는데 이걸 보완하고자 하는 단음계들이 있습니다. 이번 시간에는 그것을 이야기하려고 합니다. 1. 자연단음계 (Natural Minor Scale) 자연단음계는 A부터 시작하는 기본적인 단음계를 사용합니다. 2. 화음단음계 (Harmonic Minor Scale) 자연단음계에서 7도인 이끔음에 샾#을 넣은 단음계를 사용합니다. 7도에 샾#을 넣어주는 이유는 7도인 이끔음은 다음 1도 으뜸음으로 가려는 성질이 있는데 단음계에서는 7도와 8도가 온음으로 차이가 나서 샾#으로 반음을 올려서 장음계처럼 반음차이로 만들어 부드럽게 이어주게 하는 것입니다. 3. 가락단음계 (..
1. Hounsfield Unit 의료 영상에서 Pixel 에 사용되는 값의 단위는 HU 라고 하였습니다. CT는 발광부에서 X-ray를 쏘고, 이를 물체에 투과하였을 때 물체가 얼마나 X-ray를 흡수하는지를 나타내는 값입니다. 물을 0 HU, 공기를 -1000HU 로 기준으로 합니다. 그리고 인체의 각 부위별로 나타내는 값이 다음과 같습니다. 이 값은 절대적인 값은 아니지만 일반적으로 나타내는 값입니다. 2. Window Level, Window Width 우리가 HU 영상을 Gray 영상으로 변환하였을 때에 전체 값을 맵핑할 경우 우리가 원하는 부위의 영상을 알아보기가 어렵습니다. 그래서 사용하는 것이 영상의 Window Level과 Width 를 적용하여 맵핑하도록 합니다. Window Level..
CT 의료 영상은 grayscale의 Hounsfield Unit (HU) 을 사용합니다. 값은 12bit 이며 -1024 ~ 3071 값의 범위를 갖습니다. Dicom TAG를 보면 2byte 메모리에서 12bits 데이터를 값으로 사용함을 알수 있습니다. Dicom 파일을 vtk 를 이용해서 이미지를 표시하면 다음과 같은 영상을 출력합니다. 보면, 그동안 보았던 영상과는 좀 다르게 보입니다. 이유는 12bit 영상을 8bit 영상으로 표현해서 그렸기 때문입니다. 이와 같이 CT영상은 우리가 영상처리에서 사용하는 값의 범위가 아닌 HU 단위의 값을 갖고 있기 떄문에 HU를 Gray pixel 값으로 변환하는 작업이 필요합니다. HU의 영역 값으로 변환할 때에는 Window width / level의 개..
QObject 클래스와 vtkCommand 를 상속한 observer 클래스를 빌드할 때 아래와 같은 에러가 발생하였습니다. class VTKUTILS_EXPORT MyWidgetObserver : public QObject, public vtkCommand { Q_OBJECT public: explicit BoxWidgetObserver(QObject* parent = nullptr); signals: void planesChanged(vtkPlanes* planes); protected: void Execute(vtkObject* caller, unsigned long eventId, void* callData); vtkSmartPointer m_planes; }; 전체적으로 문제가 될것이 없어보이나..