src ( 왜곡된 영상 ) , dst (펴진 영상)
보통 보간을 수행할 경우, dst에서 모든 화소에 대해 원하는 src 픽셀을 가져와서 보간을 수행한다.
그렇게 해야 hole 또는 overlap이 생기지 않는다.
아래 왜곡보정 알고리즘의 경우 반대로 수행하기 위한 수식은 다음과 같다.
주의할 부분은 ①/C로 정리하여 tan(a)를 구한 r이 0인 경우, ②/c로 r을 구한다.
관련 링크 : http://www.tannerhelland.com/4743/simple-algorithm-correcting-lens-distortion/
데모 프로그램 : http://photodemon.org/
input: strength as floating point >= 0. 0 = no change, high numbers equal stronger correction. zoom as floating point >= 1. (1 = no change in zoom) algorithm: set halfWidth = imageWidth / 2 set halfHeight = imageHeight / 2
if strength = 0 then strength = 0.00001 set correctionRadius = squareroot(imageWidth ^ 2 + imageHeight ^ 2) / strength for each pixel (x,y) in destinationImage set newX = x - halfWidth set newY = y - halfHeight set distance = squareroot(newX ^ 2 + newY ^ 2) set r = distance / correctionRadius
if r = 0 then set theta = 1 else set theta = arctangent(r) / r set sourceX = halfWidth + theta * newX * zoom set sourceY = halfHeight + theta * newY * zoom set color of pixel (x, y) to color of source image pixel at (sourceX, sourceY) |
'Algorithm' 카테고리의 다른 글
Contrario (0) | 2016.02.23 |
---|---|
[KCF]Kernelized Correlation Filters - Tracking (0) | 2015.12.28 |
MSER ( Maximally stable extremal regions ) (0) | 2015.08.04 |
마이크를 이용해서 소리의 위치 검출 (0) | 2015.06.12 |
[Bluestein's FFT] 2^n의 길이가 아닌 데이터의 Fast Fourier Transform (0) | 2015.06.12 |