영상 데이터의 구조와 종류

2025. 5. 31. 17:13·Bootcamp_zerobase/OpenCV

2025.05.28

 

Part13. OpenCV

  • Chapter.01 컴퓨터 비전 시작하기
    • 03_영상 데이터의 구조
    • 04_영상 데이터의 종류
    • 05_영상 파일 형식과 특징

 

영상 데이터의 구조

영상 데이터

  • 영상 ( Image ) 이란?
    • 픽셀이 바둑판 모양의 격자에 나열되어 있는 형태 ( 2차원 행렬 )
    • 픽셀 ( Pixel ) : 영상의 기본 단위, Picture Element, 화소

 

 

 

  • 영상에서 사용되는 좌표계

 

  • 두 가지 형태가 존재. 왼쪽은 좌표 형태, 오른쪽은 행렬 형태
    • 표현하는 방식이 서로 반대이다. 
    • $w \times h$ 영상에서는 $w$는 가로, $h$는 세로를 표현한다.
    • $M \times N$ 행렬에서는 $M$은 행, 세로, 컬럼을 말하며, $N$은 열, 가로, row를 말한다.

 

 

 

영상 데이터의 종류

 

컴퓨터 비전에사 사용되는 영상 데이터는 주로 두 가지로 나눌 수 있다.

 

  • 그레이 스케일 영상 (Gray Scale Image)
    • 흑백 사진처럼 색상 정보가 없이 오직 밝기 정보만으로 구성
    • 밝기 정보를 0~255까지 256단계로 표현

 

  • 트루컬러 영상 (True Color Image)
    • 컬러 사진처럼 색상 정보 (RGB)를 가지고 있어 다양한 색상을
      표현할 수 있다.
    • 빨강(R), 초록(G), 파랑(B) 색 성분을 각각 256 단계로 표현
    • $256^3 = 16,777,216$ (16M) 색상 표현 가능

 

 

 

 

그레이스케일 영상의 특징

  • 그레이스케일 영상 픽셀 값 표현
    • 밝기 성분을 0 ~ 255 범위의 정수로 표현
      • 0     : 완전히 어두운 상태 (검정)
      • 255 : 완전히 밝은 상태 (흰색

 

  • 프로그래밍 언어에서 표현 방법 : 1Byte 사용
    • C/C++ : unsigned char
    • Python : numpy.uint8

 

그레이스케일 영상에서 픽셀 값 분포의 예

 

픽셀값이 10 이하에 대해서는 사람의 눈으로는 식별(구분)하기 힘들다.

 

 

 

 

트루컬러 영상의 특징

  • 컬러 영상의 픽셀 값 표현
    • R, G, B 색 성분의 크기를 각각 0 ~ 255 범위의 정수로 표현
      • 0      : 해당 색 성분이 전혀 없는 상태
      • 255  : 해당 색 성분이 가득 있는 상태

 

  • 프로그래밍 언어에서 표현 방법 : 3Byte 사용
    • C/C++ : 구조체, 클래스
    • python : 튜플, numpy.ndarray

 

 

 

트루컬러 영상에서 픽셀 값 분포의 예

 

 

 

 

 

영상 파일의 형식과 특징

 

영상 파일 형식의 특징

  • BMP 
    • 픽셀 데이터를 압축하지 않고, 그대로 저장 → 파일 용량이 큰 편
    • 파일 구조가 단순해서 별도의 라이브러리 도움 없이 파일 입출력 프로그래밍 가능
  • JPG  
    • 주로 사진과 같은 컬러 영상을 저장
    • 손실 압축 ( Lossy Compression ) : 압축을 하면서 값이 달라진다. 픽셀값이 미세하게 변경된다.
      → CV 분야에서는 미세한 픽셀값이 변경이 결과값의 변경으로 이어질 수 있어서 사용하지 않는 부분도 있다.
      → 미세한 픽셀값의 변경이 결과에 영향이 미치지 않는 분야에서는 적용하지만, 공장 자동검출 등 정밀도가 요구되는 분야에서는 JPG 파일을 적용하기는 난해하다.
    • 압축률이 좋아서 파일 용량이 크게 감소한다. 디지털 카메라 사진 포맷에서 주로 사용
  • GIF
    • 256 색상 이하의 영상을 저장 → 일반 사진을 저장 시 화질 열화가 심함
      (일반 RGB 컬러는 1,600만개 이상의 색상 표현)
    • 무손실 압축 ( lossless Compression )
    • 움직이는 GIF 지원
  • PNG 
    • Portable Network Graphics
    • 무손실 압축 (컬러 영상도 무손실 압축)
      → BMP와 JPG 중간단계 정도. BMP보다 압축률은 크지만 JPG 정도는 안된다. 다만 무손실 압축이므로 JPG의 단점을 보완할 수 있다.
    • 알파 채널(투명도)을 지원
    • 최근에 사용하는 빈도, 용도가 많이 늘어나는 중이다.

 

영상 데이터의 용량

  • 영상 데이터 용량 분석
    • 그레이스케일 영상 : (가로크기) X (세로크기) Bytes
    • 트루컬러 영상 : (가로크기) X (세로크기) X 3 Bytes

 

예를 들어, 30fps 짜리 영상이 FHD인 경우, FHD가 6MB 이고 1초에 30프레임이니 1초에서 180 MB 용량이 사용된다.

 

 

 

BMP, PNG, JPG 파일 용량 비교

 

2번째, 3번째 사진 압축 시 용량 차이가 나는 이유는, 단순한 사진일수록 압축이 잘되고, 복잡한 이미지의 경우 압축이 잘 되지 않는다.

 

 

 

 

'Bootcamp_zerobase > OpenCV' 카테고리의 다른 글

영상 다루기 및 마스크 연산 (OpenCV 기초 사용법 2)  (0) 2025.07.06
영상데이터 다루기 (OpenCV 기초 사용법)  (1) 2025.06.29
OpenCV 주요 함수 사용법  (0) 2025.06.03
OpenCV 개요  (2) 2025.06.01
컴퓨터 비전 (Computer Vision) 개요  (4) 2025.05.28
'Bootcamp_zerobase/OpenCV' 카테고리의 다른 글
  • 영상데이터 다루기 (OpenCV 기초 사용법)
  • OpenCV 주요 함수 사용법
  • OpenCV 개요
  • 컴퓨터 비전 (Computer Vision) 개요
Loft_mind
Loft_mind
건축 전공자의 전공 갈아타기
  • Loft_mind
    오늘의 설계
    Loft_mind
  • 공지사항

    • 분류 전체보기 (38)
      • Bootcamp_zerobase (37)
        • Pytorch (12)
        • Image Augmentation (2)
        • YOLO & RNN (4)
        • Git & GitHub (2)
        • Tensorflow (11)
        • OpenCV (6)
      • Architecture (0)
  • 블로그 메뉴

    • 홈
    • 태그
  • 태그

    RE
    pytorch
    image augmentation
    autoencoders
    git
    VGGNET
    제로베이스
    역전파
    ComputerVision
    subclass
    mnist
    정규표현식
    CNN
    zerobase
    컴퓨터 비전
    github
    opencv
    bash
    rnn
    YOLO
    deeplearning
    tensorflow
    ResNet
    PIL
  • hELLO· Designed By정상우.v4.10.3
Loft_mind
영상 데이터의 구조와 종류
상단으로

티스토리툴바