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) 색상 표현 가능
- 컬러 사진처럼 색상 정보 (RGB)를 가지고 있어 다양한 색상을
그레이스케일 영상의 특징
- 그레이스케일 영상 픽셀 값 표현
- 밝기 성분을 0 ~ 255 범위의 정수로 표현
- 0 : 완전히 어두운 상태 (검정)
- 255 : 완전히 밝은 상태 (흰색
- 밝기 성분을 0 ~ 255 범위의 정수로 표현
- 프로그래밍 언어에서 표현 방법 : 1Byte 사용
- C/C++ : unsigned char
- Python : numpy.uint8
그레이스케일 영상에서 픽셀 값 분포의 예
픽셀값이 10 이하에 대해서는 사람의 눈으로는 식별(구분)하기 힘들다.
트루컬러 영상의 특징
- 컬러 영상의 픽셀 값 표현
- R, G, B 색 성분의 크기를 각각 0 ~ 255 범위의 정수로 표현
- 0 : 해당 색 성분이 전혀 없는 상태
- 255 : 해당 색 성분이 가득 있는 상태
- R, G, B 색 성분의 크기를 각각 0 ~ 255 범위의 정수로 표현
- 프로그래밍 언어에서 표현 방법 : 3Byte 사용
- C/C++ : 구조체, 클래스
- python : 튜플, numpy.ndarray
트루컬러 영상에서 픽셀 값 분포의 예
영상 파일의 형식과 특징
영상 파일 형식의 특징
- BMP
- 픽셀 데이터를 압축하지 않고, 그대로 저장 → 파일 용량이 큰 편
- 파일 구조가 단순해서 별도의 라이브러리 도움 없이 파일 입출력 프로그래밍 가능
- JPG
- 주로 사진과 같은 컬러 영상을 저장
- 손실 압축 ( Lossy Compression ) : 압축을 하면서 값이 달라진다. 픽셀값이 미세하게 변경된다.
→ CV 분야에서는 미세한 픽셀값이 변경이 결과값의 변경으로 이어질 수 있어서 사용하지 않는 부분도 있다.
→ 미세한 픽셀값의 변경이 결과에 영향이 미치지 않는 분야에서는 적용하지만, 공장 자동검출 등 정밀도가 요구되는 분야에서는 JPG 파일을 적용하기는 난해하다. - 압축률이 좋아서 파일 용량이 크게 감소한다. 디지털 카메라 사진 포맷에서 주로 사용
- GIF
- 256 색상 이하의 영상을 저장 → 일반 사진을 저장 시 화질 열화가 심함
(일반 RGB 컬러는 1,600만개 이상의 색상 표현) - 무손실 압축 ( lossless Compression )
- 움직이는 GIF 지원
- 256 색상 이하의 영상을 저장 → 일반 사진을 저장 시 화질 열화가 심함
- 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 |