블로그에 글 항목들을 보니 컴퓨터 비전, 이미지 처리의 가장 기본적인 항목이 빠져 있어 이 참에 작성해 봅니다. 이미지라는 것은 현실 세계의 한 장면을 센서로 취득한 뒤 2차원 형태의 매트릭스 Matrix로 디지털화 한 데이터로 볼 수 있습니다. 이 매트릭스 하나의 셀 Cell을 픽셀 Pixel 이라고 합니다. 각 픽셀은 색상과 밝기를 수치로 저장 할 수 있습니다.
- 픽셀 Pixel (Picture Element)
이미지를 구성하는 가장 작은 단위 입니다. 디스플레이를 위한 각 픽셀은 정수 Unsigned Integer로 저장되며 이미지 처리 시 부동소수점 Floating Point 형태로 변환하여 계산할 수 있습니다. 예를 들어 보통 우리가 보는 흑백 이미지 Grayscale의 경우 픽셀 값의 범위는 0~255의 값을 갖습니다.
- 해상도 Resolution
해상도는 이미지의 크기를 의미합니다. 이미지의 "가로 Width X 세로 Height = 픽셀 수" 로 표현되고, 우리가 TV를 구매할 때 HD, Full HD, Ultra HD 용어가 해상도를 나타냅니다. 예를 들어 HD는 1280x720, Full HD는 1920x1080, Ultra HD는 3840x2160 크기로 정의되고, 계산해보면 Full HD는 207만 개 이상의 픽셀로 구성됨을 알 수 있습니다.
- 채널 Channel
이미지 처리에서 채널은 색상 성분을 나누어 표한 각각의 구성 요소를 의미합니다. 흑백 이미지 Grayscale의 경우 밝기 정보만 존재하므로 1-채널로 볼 수 있습니다. 칼라 이미지 RGB의 경우 색상 표현을 위한 빨강, 초록, 파랑의 3개의 채널로 구성 됩니다. 이미지 처리를 하다 보면 칼라 이미지인데 RGBA 형태도 볼 수 있으며, 마지막 A는 투명도 조절 역할을 하는 채널입니다. 예를 들어 A의 값이 낮아질 수록 빨강색은 연한 빨강색으로 표현됩니다.
- 깊이 Bit Depth
한 픽셀의 색 또는 밝기를 표현할 수 있는 단계의 범위 입니다. 우리가 생활에서 접할 수 있는 흑백 이미지 Grayscale의 경우 256단계의 범위를 가지며 8-bit 이미지라고도 합니다. 칼라 이미지는 RGB 각각 8-bit으로 구성되며 합쳐서 24-bit 이미지로 불립니다. (8-bit: 2의 8승 = 256) 세부적인 처리가 필요한 의료 분야 등에서는 10-bit (1,024 단계) 이상의 범위로 이미지를 저장하여 활용합니다.
- 포맷 Format (이미지 저장 형식)
일상에서 이미지는 메모리에 파일 형태로 저장되며, 그 파일 형태를 포맷이라고 합니다. 가장 익숙한 포맷은 BMP와 JPG가 있습니다. BMP는 마이크로소프트에서 개발된 디지털 이미지 포맷이며 무손실 이미지로 저장되므로 파일 크기가 큽니다. JPG는 ISO와 ITU-T에서 제정된 손실 압축 방법의 표준 이미지 포맷입니다. 손실 압축이므로 압축 비율에 따라 데이터 크기는 작아 질 수 있습니다. 이 외 TIFF가 있으며 앨더스사와 마이크로소프트가 공동 개발한 이미지 포맷이며 무손실 및 손실 압축이 가능하고 사용자가 고쳐서 사용할 수 있는 유연함이 특징입니다. 추가로 GIF, PNG, RAW 등의 포맷이 있습니다.
- 이미지 저장 공간
흑백 이미지 Grayscale의 경우 1-채널이므로 메모리에는 2차원 배열로 저장됩니다. 칼라 이미지 RGB는 3-채널이므로 3차원 배열로 저장됩니다. 아래는 Grayscale과 RGB의 각 픽셀값을 추출하는 파이썬 예제 코드 입니다. RGB 추출 시 순서는 B, G, R 이니 혼동하지 않도록 주의해야 합니다.
# Grayscale
gray = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE) # 이미지 로드
pixel_value = gray[50, 100] # 픽셀 정보 출력, 좌표 (50, 100)
# RGB
img = cv2.imread('image.jpg') # 이미지 로드
(b, g, r) = img[50, 100] # 픽셀 정보 출력 (좌표 (50, 100)) → [B, G, R]
이상에서 같이 디지털 이미지는 2차원 매트릭스 구조로 볼 수 있으며, 2차원 이산 신호처리 2D Discrete Signal Processing을 적용 할 수 있습니다. 영상처리에 적용되는 이론들 대부분이 푸리에 변환 및 필터링 등과 같은 신호처리 개념입니다.
'영상처리 기술' 카테고리의 다른 글
영상처리 푸리에 변환 Fourier Transform 이해와 기본 (Python) (0) | 2025.06.01 |
---|---|
이미지 처리 보간법 이론과 활용: Bilinear Interpolation (0) | 2025.05.25 |
기하학적 이미지 변환 Affine Transform (0) | 2025.04.27 |
칼라처리와 특징 Color Processing - RGB, CMY, HSI (0) | 2023.12.03 |
이미지 개선 Adaptive Image Enhancement (HE, CLAHE) (0) | 2023.11.12 |