영상 처리 개요
영상 처리란?
영상처리는 아날로그 영상 처리와 디지털 영상 처리로 구분할 수 있지만 최근에는 컴퓨터의 발전으로 영상 처리라고 하면 일반적으로 디지털 영상 처리를 의미함.
- 영상은 수학적으로 2차원 함수 f(x,y) 로 정의 될 수 있다. x, y는 공간좌표이다.
- 좌표 (x,y)에서 f의 값이 그 점에서의 영상의 밝기(intensity)가 됨.
- 만약 x, y가 유한하고 이산적일 때 이러한 영상 f(x,y)를 디지털영상이라고 하며 디지털 영상은 유한한 개수의 점들로 구성되며, 이러한 점들을 화소(pixel)라고 부른다
영상 처리 종류
- 저수준 처리(low-level image processing)
- 잡음을 줄이는 처리, 콘트라스트 개선, 영상 선명화 등의 처리 (입력과 출력이 모두 영상처리)
- 중수준 처리(mid-level image processing)
- 영상을 영역으로 구분하거나 객체들의 묘사, 객체 인식 등의 처리 (입력은 영상이지만 출력은 영상으로부터 추출된 속성)
- 고수준 처리(high-level image processing)
- 영상을 분석하고 인식하는 처리 (입력은 영상이지만 출력은 물체의 레이블일 수 있다.)
영상의 획득
카메라
- 영상센서로는 2가지 (CCD 및 CMOS)가 사용된다. 영상의 화질은 센서의 종류보다는 카메라의 영상 처리 능력에 더 좌우된다.
- 컬러영상은 가시광선의 3원색(Red, Green, Blue)에 해당하는 파장에서의 강도(intensity)를 기록함으로써 생성.
- 인간은 가시광선만을 볼 수 있지만, 영상 처리에 사용되는 기계들은 거의 전체 스펙트럼을 볼 수 있다. 따라서 초음파 센서, 자외선 센서, 적외선 센서들이 생성한 영상도 영상 처리에서 다룰 수 있다.
컬러 영상과 그레이스케일(grayscale image) 영상
- 카메라에 빛의 강도만을 측정할 수 있는 센서만 있다면 흑백 영상이 만들어짐.
컬러영상은 카메라에 가시광선의 3원색을 측정할 수 있는 센서가 있어야 만들 수 있다.
- 컬러영상은 아주 쉽게 그레이스케일 영상으로 변환할 수 있음.
* 가장 간단한 식은 Grayscale = (Red + Green + Blue) / 3
표본화(Sampling)과 양자화(Quantization)
빛이 물체에서 반사된 양이 카메라의 센서에 의해 감지되고 감지된 데이터의 양에 의해 연속적인 전압신호가 발생한다. 전압 신호는 아날로그 신호이지만 표본화 및 양자화가 수행되면 영상은 2차원 숫자 배열로 바뀌게 되고 이것이 바로 디지털 영상이다.
- 간단히 설명하자면, 아날로그 영상에서 적당한 간격으로 샘플을 추출하는 것이 표본화이고, 각 샘플들의 밝기를 제한된 수의 비트로 표시하는것이 양자화이다.
- 표본화와 양자화는 모두 카메라 안에서 이루어진다.
- 카메라로부터 전달받는 것은 표본화와 양자화 과정을 거친 숫자들의 2차원 행렬이다.
표본화(Sampling)

- 그림에서의 파형은 아날로그 파형이다. 이 연속된 값으로 이루어진 파형을 디지털 데이터를 변환하고자 할때 일정한 간격(T)으로 표본화한 값만을 저장하게 됨. 이유는 컴퓨터는 메모리 제한이 있기 때문에 모든 값을 저장할 수 없기 때문이다.
- 앞서 언급했듯이, 표본화 하는 점들을 화소(pixel)이라고 함.
양자화(Quantization)
- 각 화소의 값을 정해진 몇 단계의 밝기로 제한하는 과정이다.
- 센서에 감지된 아날로그 값들은 연속된 무한한 범위의 값을 가진다. 하지만 디지털 카메라에서는 제한된 비트로 화소값을 나타내기 대문에 화소값을 제한된 단계의 밝기로 제한하여야한다.
- 예를 들면, 화소값을 8비트로 양자화한다면 0(검은색)~255(흰색)까지 화소값을 표현할 수 있음.
- 인간의 눈은 최대 500단계의 명암까지만 판별할 수 있다고 한다. 따라서 8비트 양자화면 충분하다.
디지털 영상의 종류
그레이스케일(Grayscale) 영상
- 가장 간단한영상은 각 화소가 0과 1을 값만을 갖는 이진 영상(binary image)이다.
- 빛의 강도를 더 세밀하게 양자화하려면 화소당 여러 비트를 사용한다. 이러한 영상을 그레이스케일 영상(gray scale image)이라고한다.
- 한 화소당 8비트라고 할때, 하나의 화소는 0(검은색)~255(흰색)까지의 값을 가질 수 있고 이들값들은 회색(gray)의 농도를 나타냄.
- 한 화소의 밝기를 나타내는 정수값을 명도(gray level)라고 한다.
- 영상을 x, y좌표계에 표현할 경우, 명도를 f(x,y)로 표현한다. f(x,y)가 가질 수 있는 값의 범위 또는 값의 개수를 명도 수라고 부른다. 일반적으로 명도 수가 클수록 화질이 좋아진다.
컬러 영상
- 3가지 기본색인 적색(Red), 녹색(Green), 청색(Blue)에 대하여 각각 하나의 M X N의 행렬을 필요로 한다.
- 따라서 각 행렬의 명도값은 각 화소 지점에서의 적색, 녹색, 청색 성분의 강도를 나타냄
- 컬러 영상에서의 각 화소 f(x,y)는 R,G,B의 3요소로 구성되어있음.
영상의 좌표계
- 영상은 "숫자들의 행렬"로서 f(x,y)와 같이 나타낼 수 있다. 즉, 영상은 2개의 독립 변수를 가지는 함수라고 생각할 수 있음.
- 우리가 수학에서 학습하던 좌표계와 영상의 좌표계와는 약간의 차이가 있다.
- 영상의 좌표계에서는 원점이 좌측 상단이 된다.
- OpenCV 프로그램에서 화소의 값을 표기할 때는 f(x,y)보다 f(y,x)를 사용하는 경우가 많다. 이것은 수학에서 행렬의 행의 좌표를 r, 열의 좌표를 c라고 하면 원소는 A(r,c)라고 표기하기 때문이다.
정지 영상의 크기
정지 영상 데이터양 = (가로 픽셀 수) X (세로 픽셀 수) X (픽셀당 비트 수)
- 예를들어, 512 X 512 크기이고 화소당 8비트인 그레이스케일 영상은 512 X 512 X 8 = 2097152비트 = 256KB메모리를 필요로함
- 일반적으로 영상에서 한 행이 8비트 경계나 32비트 경계로 끝나지 않는 경우, 처리를 빠르게 할 목적으로 여분의 비트나 바이트(보통 패딩이라고 함)가 추가되는 경우가 있다.
동영상의 크기
동영상의 데이터양 = (가로 화소 수) X (세로 화소 수) X (화소당 비트 수) X (초당 프레임 수)
- 동영상의 경우에 512 X 512 크기에 화소당 8비트를 가지는 영상을 초당 10개씩 실시간으로 처리해야한다고 가정하면 처리되어야 하는 데이터양은 1분에 150MB에 해당하는 양이 된다.
- 하지만 최근에는 아주 좋은 영상 압축 알고리즘들이 등장하여서 동영상의 크기는 상당히 줄었다.
영상 처리는 어디에 사용될까?
- 자율주행자동차
- 공장 자동화
- 생체 인식 시스템
- 의료(생물학) 영상 처리
- 문자 자동 인식
영상 처리와 유사한 분야
컴퓨터 비전(Computer vision)과의 비교
- 컴퓨터 비전은 입력 영상에서 어떤 정보를 추출하는 분야이다. 컴퓨터 비전은 영상에서 물체를 찾고 의미 있게 설명하는 것을 목표로 한다.
- 컴퓨터 비전의 출력은 영상의 설명이나 해석이다. 영상 처리에서는 입력이 영상이고 출력도 영상이된다. 하지만 이 구분은 상당히 모호하다.
- 영상처리와 컴퓨터 비전은 정말 많은 내용이 중복된다.
컴퓨터 그래픽(Computer graphics)과의 비교
- 컴퓨터 그래픽은 컴퓨터에서 가상의 영상을 생성하는 것을 다루는 학문이다. 영상 처리는 실제 세계에서 획득된 영상을 컴퓨터로 처리한다.
인공 지능과의 비교
- 컴퓨터 비전은 인공 지능의 한 분야로 소개된다. 입력 영상에서 물체를 구분하려면 여러 가지 패턴 인식과 같은 이공 지능 기법이 필요하다. 자율 주행 자동차에서 카메라를 통하여 입력되는 영상을 분석하는 시스템에서는 영상 처리 기술과 인공 지능 기술을 함께 사용 한다.
신호 처리(Signal processing)와의 비교
- 신호 처리는 굉장히 방대한 부냥이다. 영상처리도 신호처리의 일부라고 할 수 있다. 다양한 신호처리 중에서 입력이 영상이고 출력이 영상인 신호 처리를 영상 처리라고 할 수 있다.
- 신호 처리에서의 표본화 및 양자화 이론은 영상 처리에서도 동일하게 적용된다.
영상 처리 분야
영상 조작(Image manipulation)
- 노이즈가 많은 영상을 개선하거나, 흐려진 영상을 복원하고, 영상의 명암비를 향상하는 것이 모두 이분야에 속한다. 영상의 기하학적인 교정이나 예술적인 변형도 여기에 속한다.
영상 분석(Image analysis)
- 인쇄되거나 필기된 글자를 식별하거나, 카메라를 통하여 부품의 치수를 측정하고 PCB 기판의 정밀도 체크하거나, 의료분야에서의 세포 분석 등이 여기에 해당된다.
영상 인식(Image recognition)
- 영상 처리의 가장 흥미로운 분야 중 하나로 영상 내 존재하는 물체의 종류와 개수 등을 인식하는 것이다. 대표적인 예가 로봇의 시각 시스템과 자율 주향 자동차의 전자 눈이다.
영상 압축(image compression)
- 저장 또는 전송 비용을 줄이기 위해 디지털 영상에 적용되는 데이터 압축 방법이다.