SMALL

분류 전체보기 765

감마 보정 (Gamma Correction) [2]

지난 회차 게시물에서는 IDL에서 이미지 데이터에 대하여 감마 보정(Gamma Correction) 기법을 적용하는 방법과 예제를 소개한 바 있습니다. 오늘은 앞서 소개되었던 방법을 그대로 응용하여 감마 보정 기법을 다른 예제 이미지 데이터에 적용해보기로 하겠습니다. 예제로 사용할 이미지 파일은 다음과 같습니다. 이 파일로부터 이미지 데이터를 읽고 감마 보정을 해보기로 합니다. 일단 이미지 데이터를 읽는 작업부터 다음과 같이 시작합니다. READ_JPEG, 'my_photo1.jpg', data, /GRAYSCALEHELP, data 사실 원본 이미지는 컬러이긴 하지만 여기서는 처리 작업의 편의를 위하여 READ_JPEG 명령을 GRAYSCALE 키워드와 함께 사용하여 RGB가 아닌 단색광 이미지 데이..

감마 보정(Gamma Correction) [1]

감마 보정(Gamma Correction)은 이미지 처리 분야에서 널리 사용되고 있는 기법으로서 비선형적인 전달 함수(Nonlinear Transfer Function)를 사용하여 신호의 강도를 변형시키는 작업을 의미합니다. 이 기법에서 사용되는 비선형 전달 함수의 형태는 다음과 같습니다. 이 식에서 지수 형태로 들어가는 gamma 값이 가장 핵심적인 역할을 합니다. f(x) = gain*x^gamma+offset 물론 IDL에서도 이러한 기법을 사용하는 것이 가능합니다. 어떻게 보면 여기서 예전에 소개되었던 클리핑(Clipping) 기법 또는 히스토그램 균일화(Histogram Equalization) 기법과 유사한 맥락일 수도 있지만, 감마 보정 기법의 경우는 전달 함수의 형태를 다양하게 변형시켜서 ..

막대 차트(Bar Chart) 표출하기

막대 차트(Bar Chart)는 막대 모양의 그래프를 표출하면서 막대 내에서 값에 따라 마디마디가 구분되어 보이도록 하는 표출 방식을 의미합니다. 이해를 돕기 위하여 예제 그림만 먼저 본다면 다음과 같습니다. 이 그림에서는 어떤 설문 조사를 6개의 집단들을 대상으로 실시하고 각 카테고리별 응답 비율을 막대 차트의 형태로 표시하고 있습니다. 오늘은 이러한 막대 차트(Bar Chart) 그림을 IDL에서 표출하는 방법을 소개해보고자 합니다. 위의 그림은 당연히 IDL로 표출한 것이며 그 과정을 지금부터 살펴보겠습니다. 먼저 예제 데이터부터 정의해봅시다. 그 과정은 다음과 같습니다. cats = ['very bad', 'bad', 'not bad', 'good', 'very good'] colors = ['..

IDL/New Graphics 2025.12.09

BOXPLOT 함수 소개

오늘은 NG 체계에서 지원되는 그래픽 함수들 중에서 BOXPLOT 함수에 관하여 소개해보기로 하겠습니다. BOXPLOT 함수는 NG 체계의 그래픽 함수들 중에서도 비교적 나중에 도입된 경우에 속하며 IDL 8.2.2 버전에서부터 지원되기 시작하였습니다. IDL에서 이 함수에 대한 설명을 보면 box and whisker plot(상자 수염 그림) 형태의 표출 기능이라고 언급되어 있습니다. 이것은 통계 분야에서 흔히 사용되는 표출 형태로서 최소값(Minimum), 1사분위값(25% Quartile), 2사분위값(50% Quartile or Median), 3사분위값(75% Quartile), 최대값(Maximum) 등의 5종의 통계값들을 박스 및 에러바(box and error bar)의 형태로 나타내는 ..

IDL/New Graphics 2025.12.03

2종의 막대 그래프를 서로 붙여서 표출하기

오늘은 IDL에서 BARPLOT 함수를 이용하여 막대 그래프를 표출하는데 있어서 서로 다른 두 종류의 데이터에 대한 막대 그래프 그림을 서로 붙여서 표출하는 예제를 소개해보고자 합니다. 먼저 이를 위하여 필요한 두 종류의 예제 데이터를 다음과 같이 생성해봅시다. n = 10000 data1 = RANDOMN(-1, n)*10 data2 = RANDOMN(-2, n)*20+5 여기서 생성된 data1 및 data2는 모두 정규 분포를 하는 10000개의 값들로 구성된 1차원 배열인데, data1은 평균 및 표준편차가 각각 0 및 10이고 data2는 평균 및 표준편차가 각각 5 및 20인 데이터입니다. 그리고 각 데이터에 대한 분포 자료를 얻기 위하여 HISTOGRAM 함수를 다음과 같이 사용합니다. bs..

IDL/New Graphics 2025.11.27

바코드 형태의 이미지의 표출 및 응용 [2]

IDL에서 바코드(Barcode)의 형태를 띈 이미지를 구현하고 표출하는 방법을 지난 회차 게시물에서 소개한 바 있습니다. 오늘은 이러한 기법을 응용하는 예제를 살펴보기로 합니다. 먼저 다음과 같이 1차원적인 패턴의 데이터를 가정하고 기본적인 표출까지 진행해봅시다. x = FINDGEN(241) y = 1.7*SIN(x*!PI/25.0)*EXP(-0.01*x)win = WINDOW(DIMENSIONS=[600, 500], /NO_TOOLBAR) p = PLOT(x, y, COLOR='dark cyan', THICK=2, $ XRANGE=[0, 240], XTICKINTERVAL=60, $ FONT_SIZE=11, MARGIN=[0.1, 0.1, 0.1, 0.2], /CURRENT) 여기서는 감쇄형..

IDL/New Graphics 2025.11.17

바코드 형태의 이미지의 표출 및 응용 [1]

오늘은 IDL에서 바코드(Barcode)의 형태를 띈 이미지를 표출하는 방법을 소개해보고자 합니다. 즉 마치 바코드처럼 세로 방향의 검은 선들이 흰 바탕에 표시되는 방식을 뜻합니다. 다만 오늘 해보고자 하는 것은 바코드의 모습을 띈 이미지를 표출하는 것일 뿐이고 바코드의 생성 메커니즘을 적용하여 바코드 자체를 생성하는 것은 아님을 미리 밝혀둡니다. 그러면 먼저 바코드 형태의 데이터를 다음과 같이 0과 1의 값들로 구성된 1차원 배열로 가정하여 임의로 정의해봅시다. code = [1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, $ 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1..

IDL/New Graphics 2025.11.11

색상을 채운 플롯(Filled Plot)의 표출 [3]

IDL에서 플롯의 선(Line) 사이를 색상으로 채워서 표출하는 기능을 담당하는 FILLPLOT 함수는 IDL 8.7.2 버전부터 지원되기 시작하였으며 이 함수의 사용법 및 예제는 이미 관련 게시물들(링크1, 링크2)을 통하여 소개한 바 있습니다. 오늘은 FILLPLOT 함수를 사용하는 또 다른 방식에 대한 예제들을 소개해보고자 합니다. 일단 FILLPLOT 함수의 기본적인 사용법은 앞서 언급된 링크들을 참조하는 것으로 하고 시작해봅니다. 먼저 예제로 사용할 데이터를 다음과 같이 생성합니다. x = [0:2:0.01] y1 = FLTARR(N_ELEMENTS(x)) y2 = 1.2*SIN(4*!pi*x) 여기서는 0부터 2까지 0.01의 간격을 갖는 201개의 실수형 값들로 구성된 x를 생성하고 이를 바..

IDL/New Graphics 2025.11.05

이미지(Image)를 격자(Grid)와 함께 표시하기

2차원 데이터에 대한 이미지(Image)를 표출하는데 있어서 격자(Grid)를 함께 표시하는 방식은 이미지를 구성하는 각각의 화소(Pixel)를 사각형으로 둘러싸서 다른 화소들과 구분하여 보고자 할 때 유용합니다. 이러한 표출은 이미지 배열의 크기가 큰 경우보다는 작은 경우에 더 적합합니다. 물론 통상적으로는 이미지의 표출에 있어서 격자를 함께 표시하지 않는 것이 기본이긴 하지만, 필요에 따라서는 개별 화소를 구분하여 볼 목적으로 격자들을 함께 표시하고 싶을 수도 있습니다. IDL에서도 이러한 방식의 표출은 가능합니다. 그래서 그 방법을 소개해보고자 합니다. 먼저 가상의 예제 데이터를 다음과 같이 생성해봅시다. 여기서는 5x5의 구조를 갖는 2차원 배열 data를 생성하면서 화소값들은 난수로 부여되도록 ..

IDL/New Graphics 2025.10.28

줄기형 플롯 표출하기

줄기형 플롯(Stem Plot)은 각 데이터 포인트로부터 세로 또는 가로 방향의 선이 마치 줄기처럼 뻗어 있는 듯한 모습으로 구현되는 플롯을 의미합니다. 그런데 사실 IDL의 그래픽 기능 함수들 중에는 이러한 형태의 플롯을 구현할 수 있도록 해주는 전용 함수는 없습니다. 다만 우회적인 방법을 이용하여 이러한 줄기형 플롯을 구현하는 것은 가능은 합니다. 바로 PLOT 함수 및 BARPLOT 함수를 적절히 혼용하는 방법인데, 이러한 방식을 사용하면 거의 비슷하게 구현이 가능합니다. 그러면 가상의 x, y 데이터를 정의하고 이를 줄기형 플롯으로 구현하는 예제를 살펴봅시다. 일단 데이터 포인트들이 정사각형 기호로 표시되는 플롯을 먼저 표출합니다. 그 시작 과정은 다음과 같습니다. x = FINDGEN(21) y..

IDL/New Graphics 2025.10.21
728x90