반응형

전체 글 716

IDL 8.9의 Gabor Filter 기능 소개

IDL 8.9 버전에서 새로 추가된 Gabor Filter 기능은 2차원 이미지에 대하여 적용 가능한 필터링 옵션이라고 볼 수 있으며 주로 경계선 추출(Edge Detection) 또는 텍스쳐 분석(Texture Analysis)에 사용되는 처리 기법입니다. IDL 8.9에서 이 기능을 사용하기 위해서는 GABOR_KERNEL 및 GABOR_FILTER 함수를 사용해야 합니다. 그래서 오늘은 이 기능에 관하여 관련 예제와 함께 소개를 해보고자 합니다. Gabor 필터링 자체는 기본적으로는 컨볼루션(Convolution)의 일종이며 적용되는 커널(Kernel)의 세부 형태에 따라 결과가 달라지게 됩니다. 따라서 GABOR_KERNEL 함수를 사용하여 커널의 형태를 먼저 정의한 후, 이 커널 데이터를 대상 ..

IDL 8.9에서 추가된 상수 정의 기능

IDL 8.9에서는 상수(Constants)의 정의 기능에 있어서 업데이트된 사항들이 몇가지 있습니다. 그래서 관련된 주요 사항들을 정리하여 소개해보고자 합니다. 기존의 IDL에서는 복소수를 정의하는데 있어서 COMPLEX 함수를 사용하는 것이 유일한 방법이었습니다. 예를 들어서 복소수 2-3i를 정의하는 방법은 다음과 같습니다. a = COMPLEX(2, -3) HELP, a 이렇게 하면 출력된 내용을 통하여 확인할 수 있듯이 변수 a는 복소수 2-3i를 담게 됩니다. A COMPLEX = ( 2.00000, -3.00000) 그런데 IDL 8.9에서는 복소수를 정의하는 새로운 방법이 추가되었는데, 바로 알파벳 i 또는 j를 활용하는 방법입니다. 즉 다..

IDL/Programming 2023.06.29

IDL 8.9의 Literal Strings 문법

IDL에서는 문자값을 정의할 때 항상 따옴표를 사용하는데, 따옴표는 싱글 또는 더블 모두 가능합니다. 즉 다음 두 경우는 모두 같은 결과를 출력합니다. PRINT, 'IDL 8.9 is now available' PRINT, "IDL 8.9 is now available" 그런데 만약 다음과 같은 문장을 출력하고 싶다고 합시다. There are 43 persons in this class 그리고 저 43이라는 값이 n이라는 변수에 저장된 상황을 가정합니다. 그러면 위와 같은 문장을 출력하기 위해서는 기존에는 다음과 같은 문법으로 처리해야 했습니다. n = 43 PRINT, 'There are '+STRTRIM(n, 2)+' persons in this class' 이것은 정수형 값 변수인 n을 문자값 ..

IDL/Programming 2023.06.28

그래픽 렌더링 (하드웨어? or 소프트웨어?)

우리가 IDL을 사용하는데 있어서 IDL의 사용과 관련된 각종 다양한 설정들을 세부적으로 조절할 수 있는 기능이 있습니다. 바로 Preference라는 것인데요. 윈도우즈용 IDL의 경우는 워크벤치의 상단 메뉴바에서 Window -> Preference 버튼을 누르면 되고, Mac OS용 IDL의 경우는 사과 마크 -> Preference 버튼을 누르면 됩니다. 그러면 다음과 같은 모습의 팝업 GUI가 뜨게 됩니다. 이 모습을 보면 알 수 있듯이 매우 다양한 설정 항목들이 카테고리별로 정리되어 있습니다. 그런데 오늘은 이 많은 설정들 중에서 개체 그래픽의 렌더링 방법이라는 항목에 관하여 간단히 언급해보고자 합니다. 이 항목은 Preference 인터페이스 상에서 IDL -> 그래픽 섹션에 있습니다. 다음..

IDL/Miscellaneous 2023.06.27

데이터 포인트들을 다양한 색상으로 표출하기 [1]

2차원 공간상에 흩어져있는 다수의 데이터 포인트들이 있고 각 포인트마다 데이터 값이 있을 경우를 가정하고, 이러한 데이터를 2차원 공간상에서 표시하면서 각 포인트마다 데이터 값에 따라 색상을 부여하는 방식으로 표출하는 방법에 관하여 살펴보고자 합니다. 사실 이러한 주제의 게시물들을 제가 예전에 두어번 정도 올린 적이 있기는 하지만 이번에 새롭게 다시 정리를 해보고자 합니다. 일단 가상의 데이터를 다음과 같이 생성해봅시다. n = 1000 x = RANDOMU(-1, n)*100 y = RANDOMU(-2, n)*100 v = RANDOMU(-3, n)*10 여기서는 1000개의 데이터 포인트들을 가정하고, 각 포인트에 대한 X 좌표, Y 좌표 및 데이터값에 해당되는 배열인 x, y, v를 생성한 것입니다..

IDL/New Graphics 2023.05.31

배열 내 값들에 대한 샘플링(Sampling)

어떤 배열에 일정한 갯수의 값들이 있습니다. 그런데 이 배열 내의 값들 중에서 일부만 추출하고 싶은 경우가 있습니다. 즉 배열 내의 모든 값들 중에서 일부 값들만 추려내는 작업인 샘플링(Sampling)을 하는 경우입니다. 예를 들면 다음과 같이 0~100의 범위를 갖는 10개의 정수값들로 구성된 a라는 배열을 가정해봅시다. a = FIX(RANDOMU(-1, 10)*100) PRINT, a 출력된 값들은 다음과 같습니다. 9 11 91 56 78 52 78 77 1 28 그런데 이 10개의 값들 중에서 하나 건너 하나씩 값을 추려내보고자 합니다. 즉 다음과 같이 붉은색으로 강조된 값들만 추려내는 것입니다. 9 11 91 56 78 52 78 77 1 28 그 방법은 다음과 같습니다. aa = a[0:-..