[Image Processing] Lecture 02 - Image Fundamentals

이한량·2024년 5월 30일
0

Image Processing

목록 보기
1/12

1. Digital Image

1-1. Image and Pixel

  • Image : 디지털 이미지는 빛의 2D 배열로 표현된다. 이 배열의 각 점을 픽셀(Pixel)이라고 부르며, 픽셀의 특성을 이해하는 것은 매우 중요하다.

  • Global Shutter (CCD) vs Rolling Shutter (CMOS)

    • Global Shutter

      • 작동 원리 : 모든 픽셀이 동시에 빛에 노출

      • 장점 : 움직이는 물체를 촬영할 때 왜곡이 없음.

      • 단점 : 구현이 복잡하고 비용이 많이 듦.

      • 예시 : 하이엔드 DSLR 카메라

    • Rolling Shutter (CMOS)

      • 작동 원리 : 각 픽셀이 순차적으로 빛에 노출

      • 장점 : 빠르고 저렴하게 구현할 수 있음.

      • 단점 : 움직이는 물체를 촬영할 때 왜곡이 발생함. (Skew 현상 등)

      • 예시 : 스마트폰 카메라

      ** Skew : 카메라가 움직이거나 피사체가 빠르게 이동할 때 발생하는 왜곡 현상으로, 이미지의 상단과 하단이 서로 다른 시간에 캡쳐되기 때문에 물체가 동위상에 위치하지 않는 것처럼 보이는 현상 (기울어져 보임).

  • Pixel

    • 픽셀의 2D 좌표 : 각 픽셀은 이미지 내에서 고유한 2D 좌표를 가진다. 예를 들면, 픽셀 ii의 좌표값은 pi(x,y)p_i(x, y)이다.

    • 픽셀의 값 (강도) : 각 픽셀은 빛의 양을 나타내는 값을 갖는데, 이 값을 픽셀의 강도 또는 밝기라고도 부른다.

    • 픽셀의 값의 의미 : 픽셀 값은 빛의 양을 나타내므로, 낮은 픽셀 값은 이미지에서 어두운 부분을, 높은 픽셀 값은 이미지에서 밝은 부분을 나타낸다.

    • 픽셀 값의 범위 : 픽셀은 일반적으로 두 가지 방식으로 나타낸다.

      • 0p2550 \leq p \leq 255 (8bits, 1byte) : 픽셀 값이 0에서 255 사이의 정수로 표현되는데, 0은 제일 어두운 흑색, 255는 제일 밝은 백색을 나타낸다.

      • 0p10 \leq p \leq 1 : 각 픽셀 값이 0.0 ~ 1.0 사이의 실수 값을 갖는다. 이 경우, 0.0이 제일 어두운 흑색, 1.0은 제일 밝은 백색이다.

1-2. Image Acquisition Process

  • 이미지 획득 과정 (Image Acquisition Process)

    1). Illumination Source : 물체를 비출 수 있는 적절한 조명(빛)이 존재한다.

    2). Scene Element : 물체(피사체)로부터 빛(가시광선)이 나온다.

    3). Imaging System : 이미징 시스템 (카메라, 렌즈, 필터 등)을 통해 피사체로부터 나오는 장면을 수집한다.

    4). Internal Image Plane : 이미징 시스템을 통해 모은 빛을 내부 이미지 평면에 맺히게 만들어, 상을 형성한다.

    5). Output (Digitized) Image : 내부 이미지 평면에서 형성된 이미지를 디지털화 하여 최종 결과물을 만들어 낸다.

  • Sampling and Quantization : 샘플링과 양자화는 아날로그 이미지를 디지털 이미지로 변환하는 과정에서 매우 중요하다.

    • 샘플링 : 샘플링은 연속적인 값을 갖는 아날로그 이미지를 이산적인 값을 갖는 디지털 이미지로 변환하는 단계이다.

    • 양자화 : 샘플링된 이미지의 값을 이산적인 수준으로 변환하는 과정이다. 이는 연속적인 아날로그 값들을 디지털 값들로 근사화하여 이루어진다.

1-3. Color Image

  • How to record color?

    • 컬러 이미지, 3D Tensor : 컬러 이미지는 일반적으로 3차원 텐서로 표현된다. 이 텐서는 다음과 같은 형식을 갖는다.

      • H (Height) : 이미지의 높이

      • W (Width) : 이미지의 너비

      • C (Channels) : 색상 채널 (RGB일 경우 3)

    • 컴퓨터 메모리에서의 저장 : 컴퓨터 메모리는 1차원 배열로 구성되어 있다. 따라서 3차원 텐서를 저장하기 위해선 이를 1차원 배열로 변환해야한다. 이 변환 방법은 행 우선(Row-Major) 방식과 열 우선(Column-Major) 방식으로 나뉜다.

      • Row major : Row Scanning (대부분의 프로그래밍 언어들은 이 방식을 가정한다.)

      • Column major : Column Scanning

    • Channels Interleaved vs Channels separated

      • Channels Interleaved : 채널의 데이터를 연속적으로 저장하는 방식. 많은 이미지 처리 라이브러리와 포맷이 해당 방식을 사용한다.

      • Channels Separated : 각 채널의 데이터를 분리하여 저장한다. 필요에 따라 이 방식의 접근법도 유효하다.

  • How about Video?

    • 영상은 이미지의 집합으로 볼 수 있다.

    • Frame Rate(Frame per second, FPS) : 영상 1초를 구성하는 화면의 이미지의 수(Frames)

1-4. Image Files and Formats

  • GIF

    • 색상이 색상 맵을 사용하여 저장됨.

    • 색상 맵 : 특정 범위에 해당하는 값에 적용할 색을 미리 지정해두는 것. 색 표현이 왜곡될 수 있다.

    • 파일당 여러 이미지를 허용 \rarr 애니메이션

  • PNG

    • 트루 컬러 지원

    • 무손실 압축 : 화질 손상이 적다.

  • JPEG

    • 손실 압축 : 파일 크기 압축에 포커싱을 하기때문에 사진이 여러번 전송되다보면 화질 손상이 커진다.

1-5. 2D Function f(x,y)f(x,y)

  • 2D Function f(x,y)f(x,y)

    • 2차원 공간에서의 이미지를 나타낸다.

    • (x,y)(x,y)는 2차원 공간 좌표를 나타낸다.

    • ff : 특정 좌표에서의 밝기 또는 색상 정보를 나타낸다.

      • 1-D Scalar : Gray Scale Image, 0f2550 \leq f \leq 255, 각 픽셀의 밝기를 나타냄.

      • 3-D Vector : Color Image (RGB), 0f2550 \leq f \leq 255, 각 픽셀에서 R, G, B의 강도를 나타냄.

    • f(x,y,t)f(x,y,t) : tt는 시간을 나타낸다. 이 형태는 비디오 시퀀스를 나타내며, 각 시점에서의 2차원 이미지를 표현한다.

    • f(x,y,z)f(x,y,z) : zz는 3차원 공간에서의 깊이를 나타낸다. 이 형태는 3차원 공간에서의 객체를 나타낸다.

  • Primary Colors of Light : 빛의 3원소는 Red, Green, Blue이다.

    • 각 색상은 3차원 벡터로 표현 가능한데, 모든 색은 이 3가지 색상의 혼합으로 표현 가능하다.
      R=(1,0,0)G=(0,1,0)B=(0,0,1)R = (1,0,0) \\ G = (0,1,0) \\ B = (0,0,1)
  • Luminance (명도) : 사람이 여러 색상을 지각할 때의 밝기를 대략적으로 정의하는 양이다.

    • 명도 Y를 RGB로 대략적인 계산 방법이 있다.

      Y=(R+G+B)/3Y = (R + G + B) / 3
    • 실험 데이터에 기반하여, 명도에 대해서 더 정확한 계산 방법은 아래와 같다. 대부분의 디스플레이 기술에서 명도를 조정할 때 사용하는 계산법에 해당한다.

      Y=0.2125R+0.7154G+0.0721BY = 0.2125R + 0.7154G + 0.0721B

      ** 위와 같은 계산식이 성립하는 이유는, 일반적으로 사람의 눈이 인식할 때 제일 민감하게 반응하는 색이 초록색이기 때문이다.

2. Image Processing

2-1. Point Processing

  • Point Processing (Point Operation) : 출력 이미지의 각 픽셀은 입력 이미지의 동일한 위치에 있는 픽셀 값에 따라 결정된다.

  • Examples of Point processing

    • Original : f(x)f(x)

    • Darken : f(x)128f(x) - 128

    • Lower contrast : f(x)2\frac{f(x)}{2}

    • Non-linear lower contrast : (f(x)255)13255(\frac{f(x)}{255})^{\frac{1}{3}} * 255

    • Invert : 255f(x)255 - f(x)

    • Lighten : f(x)+128f(x) + 128

    • Raise Contrast : f(x)2f(x) * 2

    • Non-linear raise contrast : (f(x)255)2255(\frac{f(x)}{255})^2 * 255

  • Brightness vs Contrast

    • Brightness (밝기) : 이미지의 평균 강도

      • Lighten : 이미지의 밝기를 증가시킴

      • Darken : 이미지의 밝기를 감소시킴

    • Contrast (대비) : 픽셀 값 간의 상대적인 차이

      • Adjust brightness (밝기 조정) : 모든 픽셀 값이 더 커지거나 작아짐. 픽셀 값 간의 상대적 차이는 동일하게 유지됨.

      • Adjust contrast (대비 조정) : 픽셀 값 간의 상대적 차이가 더 커지거나 작아짐.

  • Intensity transformation (강도 변환) : 포인트 프로세싱에서, 공간 영역에서의 연산은 다음과 같다.

    s:(x,y)지점에서g강도()r:(x,y)지점에서f강도()𝑔(𝑥,𝑦)=h(𝑓(𝑥,𝑦))𝑠=h(𝑟)s : (x,y)\,지점에서\,g의\,강도(값) \\ r : (x,y)\,지점에서\,f의\,강도(값) \\ 𝑔(𝑥, 𝑦) = ℎ(𝑓(𝑥, 𝑦)) \rarr 𝑠 = ℎ(𝑟)
    • 위 식에서 h를 강도 변환 함수라고 부르며, 이는 입력 강도 r을 출력 강도 s로 변환한다.

    • 강도 변환 함수는 각 픽셀의 입력 강도를 특정 방식으로 변환시켜 새로운 출력 강도를 생성한다.

  • Power-law(Gamma) Transformation (거듭제곱 법칙 변환) : 이미지의 밝기와 대비를 조정하는 데 사용된다. 감마 값의 조정에 따라 어두운 영역과 밝은 영역의 표현이 달라진다.

    s=crγs = cr^\gamma
    • 위 식에서 c,γc, \gamma는 양의 상수이다.

    • 감마 값의 특징

      • 낮은 γ\gamma의 경우 좁은 범위의 어두운 입력 값을 넓은 범위의 출력 값으로 매핑한다.

      • 반대로 높은 γ\gamma의 경우에는 좁은 범위로 매핑된다.

2-2. Filtering

  • Filtering (Neighborhood Operation) : 출력 이미지의 각 픽셀 값은 입력 이미지의 동일한 위치에 있는 픽셀과 그 주변 픽셀들의 값에 의해 결정된다.
profile
한량 극복 프로젝트

0개의 댓글