短焦镜头通常会产生桶形失真,以下是校正算法的matlab代码:
[cpp]
view plain
copy
- %%
镜头桶形失真校正(短焦镜头) -
- img_origin1
= imread('Still001.bmp'); - img_origin
= rgb2gray(img_origin1); -
- k1
= -0.00000037; % 形变参数,根据实际情况调整 - k2
= -0.00000037; -
- img_size
= size( img_origin ); - img_undist
= zeros( img_size ); - img_undist
= uint8( img_undist ); -
-
- for
l1 = 1:img_size(1) % 垂直方向 -
-
y = l1 - img_size(1)/2; -
-
for l2 = 1:img_size(2) % 水平方向 -
-
x = l2 - img_size(2)/2; -
-
x1 = round( x * ( 1 + k1 * x * x + k2 * y * y ) ); -
y1 = round( y * ( 1 + k1 * x * x + k2 * y * y ) ); -
y1 = y1 + img_size(1)/2;