개요
벡터화(vectorization)는 래스터 그래픽스(비트맵 이미지)를 벡터 그래픽스로 변환하는 과정을 말한다[1][2]. 래스터 이미지는 픽셀 격자로 구성되어 있어 확대 시 계단 현상(pixelation)이 발생하고 품질이 저하되지만, 벡터 이미지는 수학적 곡선과 도형으로 표현되어 해상도에 구애받지 않고 자유롭게 확대·축소가 가능하다. 이 변환은 래스터화(rasterization)의 역연산에 해당하며, 래스터화는 비교적 직관적인 알고리즘으로 수행되지만 벡터화는 손실된 정보를 복원해야 하므로 휴리스틱(heuristic)적 방법이 필요하다[2].
작동 방식과 유형
수동 벡터화
이미지를 사람이 직접 보고 측정하여 벡터 파일을 작성하는 방식이다[2]. 기하학적 도형이 많고 텍스트가 포함된 기술 삽화 등은 수동 변환이 상대적으로 용이하다. 곡선이 많은 복잡한 형상은 수동 추적이 까다로우므로 벡터 그래픽스 편집 프로그램(Adobe Illustrator, CorelDRAW, Inkscape 등)에 내장된 추적 기능을 보조 도구로 활용한다[2]. 종이 원본만 있는 경우 스캔하여 기계 판독 가능한 비트맵 파일로 만든 뒤 편집 프로그램에 불러와 베지에 곡선(Bézier curve), 호(arc), 직선 등으로 윤곽을 따라 그린다. 스플라인 매듭(spline knot)을 조정해 원본에 가깝게 피팅할 수 있으나, 작업이 지루하고 시간이 많이 걸린다[2].
작업 흐름의 예로, Pepper는 종이에 펜으로 스케치한 뒤 라이트 테이블에서 잉크로 다시 그려 선화를 만들고, 이를 600 dpi로 스캔해 페인트 프로그램에서 정리한 다음 자동 추적 프로그램으로 벡터화했다[2]. Ploch는 디지털 사진을 불러와 기본 도형은 직접 그리고, 복잡한 부분은 비트맵 편집기로 배경 제거·자르기 후 출력하여 트레이싱 페이퍼에 손으로 옮긴 뒤 스캔·자동 벡터화하는 혼합 방식을 썼다[2].
자동 벡터화
프로그램이 알고리즘으로 자동 변환을 수행한다[2]. 대표적인 소프트웨어로 Adobe Illustrator, Inkscape, Corel PowerTRACE, Potrace 등이 있으며, 명령줄 인터페이스(CLI) 제공 여부와 대화형 설정 조정·미리보기 지원 여부가 제품마다 다르다[2]. Adobe Streamline은 입력 비트맵과 출력 곡선을 수동으로 수정할 수도 있다. Corel PowerTRACE는 CorelDRAW 내에서 비트맵 수정과 곡선 편집이 가능하며, Adobe Illustrator는 개별 곡선 추적 기능을 제공한다[2].
자동 변환 결과는 입력 이미지 품질, 설정, 알고리즘에 따라 크게 달라진다[2]. 고해상도 스캔, 적절한 파라미터, 우수한 알고리즘이 전제되어야 좋은 결과가 나온다. 스캔 이미지에는 노이즈가 많아 추가 정제 작업이 필요하기도 하다. 예시로 PNG 지도를 PowerTRACE로 SVG 변환 시 경계선(가장 번거로운 부분)은 잘 처리되었으나 작은 글자 객체는 설정에 따라 탈락하여 수동으로 다시 넣어야 했다[2].
주요 옵션과 파라미터
단일 알고리즘으로 모든 이미지 스타일을 처리할 수 없으므로 다양한 옵션이 제공된다[2].
형상 인식 모드: 양식(form)류는 수직·수평 직선이 주를 이루고, CAD 도면은 임의 각도 선·곡선·다양한 선 굵기를 가진다. Adobe Streamline은 직선 인식, 중심선 인식, 외곽선 인식 모드를 조합 선택할 수 있고, 작은 외곽선 도형을 노이즈로 간주해 버리는 임계값(0~1000 픽셀)을 지정할 수 있다[2].
색상 수 줄이기(색상 양자화, color quantization): 안티앨리어싱, 스캔 가장자리, JPEG 압축 등으로 인해 흑백 선화에도 수많은 회색조가 생긴다. 벡터화 프로그램은 동일 색상 픽셀을 선·곡선·닫힌 영역으로 묶는데, 색상 수를 제한(보통 256색 이하)하지 않으면 객체 수가 폭증한다. 사용자가 목표 색상 수를 지정하면 히스토그램을 참고해 대표색을 정하고 매핑한다[2]. 색상 수를 2로 줄일 때는 임계값(threshold)과 대비(contrast) 설정을 추가로 사용한다. 대비 설정은 특정 색이 아닌 급격한 색 변화를 감지하므로 그라데이션 영역의 미세한 변화를 무시하고 외곽선만 추출하는 데 유리하다. 추출 후 그라데이션 채우기를 수동으로 복원할 수 있다[2].
경계 근사 허용오차(tolerance): 영역 경계를 픽셀 격자에 정확히 맞추면 직교하는 짧은 선분들로 이루어져 확대 시 비트맵과 같은 계단 현상이 남는다. 이를 피하기 위해 픽셀 경계를 부드럽게 따르는 선분과 곡선으로 근사하며, 허용오차 파라미터로 픽셀 경계를 얼마나 엄밀히 따를지 제어한다[2].
곡선 피팅(curve fitting): 많은 벡터화 프로그램의 최종 출력은 3차 베지에 곡선(cubic Bézier curve) 세그먼트들로 구성된다. 곡선 이음매에서 접선이 일치하도록 제약하여 매끄럽게 연결한다. 급격한 굴곡(코너)에서는 매끄러움 제약을 풀어야 하므로 코너 검출이 중요하다. 피팅 절차는 단일 3차 베지에 곡선으로 맞춰보고, 오차가 허용 범위를 넘으면 유리한 분할점을 골라 두 조각으로 나누고 접선 연속성을 유지하며 재피팅한다. 그래도 안 되면 더 잘게 나눈다(Successive division)[2].
입출력 파일 형식
입력: 사진, 종이 도면, TIFF, BMP, PNG 등 비트맵 포맷[2].
출력: SVG, DXF, EPS, EMF, AI 등 벡터 포맷[2].
연속 톤 이미지(사진 등)에 대한 부적합성
연속 톤(continuous tone) 사진, 인물 사진 등은 벡터화에 적합하지 않다[2]. 색상 수를 줄이면 포스터라이제이션(posterization) 아티팩트가 심해지고, 결과 파일 크기가 원본 JPEG보다 10배 이상 커지는 경우도 많다. 다양한 추적 알고리즘을 적용해도 품질 저하가 뚜렷하다[2].
활용 분야
CAD(컴퓨터 지원 설계): 도면·청사진을 스캔→벡터화→CAD 파일로 저장하는 '종이-CAD 변환(paper-to-CAD conversion)' 또는 '도면 변환(drawing conversion)' 공정으로 쓰인다[2].
GIS(지리정보시스템): 위성·항공 사진을 벡터화해 지도를 제작한다[2].
그래픽 디자인·사진: 그래픽을 벡터화해 리사이징과 재사용을 용이하게 한다[2].
OCR(광학 문자 인식) 전처리: 손글씨나 서명 인식 솔루션에서 벡터화를 첫 단계로 활용한다[2].
단색·비그라데이션 데이터: 서명 등 단색·비그라데이션 입력 데이터에 효과적이다[2].
관련 기술·참고 항목
래스터화(rasterization), CAD 데이터 교환(CAD data exchange), 래스터-벡터 변환 소프트웨어 비교(Comparison of raster-to-vector conversion software), 디지털화(digitizing), 이산화 오차(discretization error), 다운샘플링(downsampling), 특징 검출(feature detection, 컴퓨터 비전), 에지 검출(edge detection), 이미지 스캐너(image scanner), 광학 문자 인식(optical character recognition), 양자화 오차(quantization error), 서브페이빙(subpaving) 등이 연관 주제로 거론된다[2].
이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.