컴퓨터 비전이란 무엇인가?
컴퓨터 비전(Computer Vision, CV)은 쉽게 말해서 "컴퓨터가 눈을 뜨고 세상을 보는 방법"입니다. 우리 인간은 눈으로 사진이나 영상을 보면, 그 안에 무엇이 있는지, 어떤 일이 일어나고 있는지 자동으로 이해합니다. 예를 들어, 강아지 사진을 보면 "아, 이건 강아지다"라고 바로 알 수 있죠. 하지만 컴퓨터는 그렇지 못합니다. 컴퓨터에게 이미지는 그냥 숫자 덩어리일 뿐이기 때문입니다.
컴퓨터 비전의 목표는 컴퓨터가 이 숫자 덩어리(이미지)를 처리해서 인간처럼 의미 있는 정보를 뽑아낼 수 있도록 학습시키는 것입니다. 즉,
- 사진 속 물체가 무엇인지 인식하기 (객체 인식)
- 사진을 여러 부분으로 나누기 (영상 분할)
- 영상에서 일어나는 행동이 무엇인지 파악하기 (행동 인식)
- 현실에 가상의 물체를 겹치기 (증강 현실)


이런 기술들은 자율주행 자동차, 의료 영상 분석(CT, MRI 진단), 보안 카메라 감시 시스템 등 우리 생활 곳곳에서 사용되고 있습니다.
영상처리와 컴퓨터 비전, 뭐가 다른가?
많은 사람들이 이 두 개념을 헷갈려 하는데, 둘의 관계를 이렇게 생각하면 쉽습니다:
관점 1: 영상처리 ⊂ 컴퓨터 비전
영상처리는 이미지의 기초적인 작업을 담당합니다. 노이즈(잡음) 제거, 이미지 자르기, 해상도 조정 같은 것들이죠.
컴퓨터 비전은 이렇게 정제된 이미지를 가지고 고차원적인 의미를 해석합니다. 즉, 영상처리가 "기초 작업"이라면 컴퓨터 비전은 "그 위에 올려진 분석"이라고 보면 됩니다.
관점 2: 영상처리 ⊂ 컴퓨터 비전(전체 시스템)
또 다른 관점에서는 컴퓨터 비전이라는 큰 시스템 안에 영상처리, 분석, 해석이 모두 포함된다고 봅니다. 실무에서는 보통 이 관점을 따릅니다.
굳이 구분하자면 영상처리는 수단이고, 컴퓨터 비전은 목표라고 생각하면 됩니다.
디지털 이미지의 기본 구성 요소
컴퓨터가 이미지를 이해하려면 먼저 이미지가 어떤 구조로 이루어져 있는지 알아야 합니다.
픽셀(Pixel, 화소): 이미지의 가장 작은 단위
당신이 스마트폰으로 찍은 사진이나 모니터에 보이는 이미지는 사실 수천 개, 수백만 개의 작은 점들로 이루어져 있습니다. 이 작은 점 하나하나를 픽셀이라고 부릅니다. 마치 미술 수업에서 색칠하기 책처럼, 작은 칸마다 다른 색을 칠하면 멀리서 봤을 때 하나의 그림이 보이는 것처럼, 이미지도 수많은 픽셀이 모여서 우리가 보는 사진을 만드는 것입니다.
각 픽셀은 하나의 색상 정보 또는 밝기 정보를 담고 있습니다. 컴퓨터는 이 정보를 숫자로 저장하고 처리합니다.
좌표 체계: 컴퓨터가 이미지를 읽는 방식
이미지에서 특정 픽셀을 찾기 위해서는 좌표가 필요합니다. 우리는 보통 지도에서처럼 (x, y)로 위치를 나타냅니다. 컴퓨터 비전에서는 이미지의 왼쪽 위 모서리를 (0, 0)으로 시작합니다. (수학에서는 보통 왼쪽 아래를 시작점으로 하지만, 컴퓨터 이미지는 다릅니다!)

그림의 오른쪽으로 갈수록 x 값이 증가하고, 아래로 갈수록 y 값이 증가합니다.
해상도(Resolution): 이미지의 크기를 나타내는 방식
"이 사진의 해상도가 뭐냐?"라고 물으면 보통 "1920 x 1080이다" 이런 식으로 답합니다. 해상도는 가로 픽셀 개수 × 세로 픽셀 개수를 의미합니다. 예를 들어:
- 1920 × 1080 = 가로 1920개, 세로 1080개의 픽셀로 이루어진 이미지
- 3840 × 2160 = 가로 3840개, 세로 2160개의 픽셀(4K 해상도)
해상도가 높을수록 더 많은 픽셀을 가지고 있으므로, 더 세밀한 세부 정보를 담을 수 있습니다. 하지만 그만큼 더 많은 저장 공간이 필요합니다.

이미지를 표현하는 두 가지 방식
컴퓨터가 이미지를 저장하고 처리할 때는 색깔을 어떻게 나타낼 것인가가 중요합니다. 크게 두 가지 방식이 있습니다.
1) 그레이스케일(Gray Scale, 흑백 이미지)
그레이스케일은 색깔 정보를 버리고 오직 밝기 정보만 저장하는 방식입니다. 마치 오래된 흑백 사진처럼요. 각 픽셀의 밝기는 0부터 255까지의 정수값으로 표현됩니다:
- 0 = 검정색 (가장 어두움)
- 128 = 회색 (중간 밝기)
- 255 = 흰색 (가장 밝음)

예시: 한 픽셀의 값이 200이라면? → 꽤 밝은 회색을 의미합니다.
- 장점:
- 데이터 크기가 작음 (저장 공간 절약)
- 처리 속도가 빠름 (계산량 적음)
- 단점:
- 색깔 정보를 모두 잃음
- 실제 사진과 다름
2) 트루컬러(True Color, RGB 컬러)
이것이 우리가 일상에서 보는 일반적인 컬러 사진 방식입니다. 각 픽셀이 3가지 색상의 조합으로 표현됩니다:
- R (Red): 빨강, 0~255의 값
- G (Green): 초록, 0~255의 값
- B (Blue): 파랑, 0~255의 값

예를 들어:
- (255, 0, 0) = 순수한 빨간색
- (0, 255, 0) = 순수한 초록색
- (0, 0, 255) = 순수한 파란색
- (255, 255, 0) = 빨강 + 초록 = 노란색
- (255, 255, 255) = 흰색
- (0, 0, 0) = 검은색
각 색상이 0~255의 256가지 단계를 가지므로, 가능한 색상의 총 개수는 256 × 256 × 256 = 16,777,216가지입니다.
Python에서 이미지를 다루는 도구들
이제 실제로 코드로 이미지를 처리할 때 사용하는 라이브러리들을 알아봅시다.
OpenCV: 강력한 컴퓨터 비전 라이브러리
OpenCV(Open Source Computer Vision)는 원래 C/C++로 만들어진 고성능 컴퓨터 비전 라이브러리입니다. 하지만 Python, Java, MATLAB 등 여러 언어를 지원하므로 Python 개발자도 쓸 수 있습니다.

Python에서 OpenCV의 특징:
- OpenCV는 이미지를 numpy.ndarray 객체로 다룹니다.
- numpy.ndarray: n차원 배열이라는 뜻으로, 이미지의 모든 픽셀 정보를 숫자 배열로 저장합니다.
실제 예시:
[[187, 187, 184], # ← 첫 번째 픽셀: RGB(187, 187, 184)
[190, 187, 190], # ← 두 번째 픽셀: RGB(190, 187, 190)
[184, 188, 172]] # ← 세 번째 픽셀: RGB(184, 188, 172)
이렇게 배열로 표현되면, 개발자는 각 픽셀 값을 마치 수학 배열처럼 다루면서 색상을 조정하거나 분석할 수 있습니다.
OpenCV의 장점:
- 매우 빠르고 효율적 (C/C++로 작성됨)
- 복잡한 이미지 처리와 컴퓨터 비전 작업에 적합
- 방대한 기능과 알고리즘 제공
Pillow: 사용하기 쉬운 이미지 처리 라이브러리
Pillow(Python Imaging Library)는 Python을 위해 특별히 설계된 이미지 처리 라이브러리입니다. OpenCV보다는 간단하지만, 기본적인 이미지 작업에는 충분합니다.

Python에서 Pillow의 특징:
- Pillow는 이미지를 PIL.Image 객체로 다룹니다.
- PIL.Image: 이미지 파일을 열고, 수정하고, 저장하는 모든 기능을 제공합니다.
- PIL.Image가 저장하는 정보들:
- 이미지 크기 (가로 × 세로)
- 이미지 모드 (RGB, 그레이스케일 등)
- 각 픽셀의 색상 데이터
- 메타데이터 (언제 찍었는지, 카메라 설정 등)
- Pillow의 장점:
- 사용하기 간단함 (초보자 친화적)
- 일반적인 이미지 처리 작업(자르기, 회전, 크기 조정 등)에 최적화됨
- 빠르게 결과를 볼 수 있음
'인공지능 > Computer Vision(CV)' 카테고리의 다른 글
| 컴퓨터 비전 입문하기[3] - 합성곱 신경망의 요소: 합성곱 계층, 풀링 계층 (0) | 2026.01.08 |
|---|---|
| 컴퓨터 비전 입문하기[2] - 왜 합성곱 신경망이 필요한가? (0) | 2026.01.08 |
| Computer Vision Major Task List - (2): Object Detection (0) | 2023.09.07 |
| Computer Vision Major Task List - (1): Image Classification (0) | 2023.07.20 |
| GAN(Generative Adversarial Networks) 이해하기 (0) | 2023.06.30 |