[ch01] Python 시작하기 - 영상의 구조와 표현

빨주노·2021년 8월 4일
0
  • 영상이란?
  • 픽셀(pixel)이 바둑판 모양의 격자에 나열되어 있는 형태 ( 2차원 행렬)
  • 픽셀: 영상의 기본 단위, picture element, 화소(畵素)
  • 영상의 표현 방법
  • 그레이스케일(grayscale) 영상
    • 흑백 사진처럼 색상 정보가 없이 오직 밝기 정보만으로 구성된 영상
    • 밝기 정보를 256단계로 표현
  • 트루컬러(truecolor) 영상
    • 컬러 사진처럼 색상 정보를 가지고 있어서 다양한 색상을 표현할 수 있는 영상
    • Red, Green, Blue 색 성분을 256단계로 표현 → 256³ = 16,777,216 색상 표현 가능
  • 그레이스케일 영상의 픽셀 값 표현
    • 밝기 성분을 0 ~ 255 범위의 정수로 표현
    • 프로그래밍 언어에서 표현 방법: 1Byte 사용
      • C/C++ : unsigned char
      • Python : numpy.uint8 (2^8 수만큼 표현 가능 : 0 ~ 255)
  • 컬러 영상의 픽셀 값 표현
    • R, G, B 색 성분의 크기를 각각 0 ~ 255 범위의 정수로 표현
      • 0 : 해당 색 성분이 전혀 없는 상태
      • 255 : 해당 색 성분이 가득 있는 상태
    • 프로그래밍 언어에서 표현 방법 : 3Bytes 사용
      • C/C++ : 구조체, 클래스
      • Python : 튜플, numpy.ndarray
  • 영상에서 주로 사용되는 좌표계
  • 그레이스케일 영상에서 픽셀 값 분포의 예
  • 트루컬러 영상에서의 픽셀 값 분포의 예

    행렬의 오른쪽 부분에서는 빨간색의 값이 제일 크다. 반면 왼쪽 부분에서는 파란색의 값이 제일 크다.
  • 영상 데이터의 크기
  • 영상 데이터의 크기 분석
    • 그레이스케일 영상 : (가로 크기) * (세로 크기) Bytes
    • 트루컬러 영상 : (가로 크기) * (세로 크기) * 3Bytes

      ※ 영상처리 하는데 시간이 꽤 걸린다. → 최적화 알고리즘이 중요하다!
  • 영상 파일 형식 특징
  • BMP
    • 픽셀 데이터를 압축하지 않고 그대로 저장 → 파일 용량이 큰 편
    • 파일 구조가 단순해서 별도의 라이브러리 도움 없이 파일 입출력 프로그래밍 가능
  • JPG
    • 주로 사진과 같은 컬러 영상을 저장
    • 손실 압축 (lossy compression)
    • 압축률이 좋아서 파일 용량이 크게 감소 → 디지털 카메라 사진 포맷으로 주로 사용
  • GIF
    • 256 색상 이하의 영상을 저장 → 일반 사진을 저장시 화질 열화가 심함
    • 무손실 압축(lossless compression)
    • 움직이는 GIF 지원
  • PNG
    • Portable Network Graphics
    • 무손실 압축(컬러 영상도 무손실 압축)
    • 알파 채널(투명도)를 지원
profile
딥 하게 딥러닝 하는중

0개의 댓글