请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM62A7 工具/软件:
我正在使用 MATLAB 脚本更正 LDC 图像。
镜头失真校正看起来很好、但直线看起来很模糊。
如何改善此问题?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
我正在使用 MATLAB 脚本更正 LDC 图像。
镜头失真校正看起来很好、但直线看起来很模糊。
如何改善此问题?
你好、建中
下面是我使用的脚本和设置
s = 1.15; m = 4; pitch_in_mm = 0.0021; f_in_mm = 4; W = 3840; H = 2160; hc = W/2; vc = H/2; Wmesh = ceil(W / 2^m) * 2^m; Hmesh = ceil(H / 2^m) * 2^m; gen_lut("spec_file.txt", pitch_in_mm, f_in_mm, Wmesh, Hmesh, hc, vc, s, m); function [] = gen_lut(spec_file, pitch_in_mm,f_in_mm, W, H, hc, vc,s ,m) f = f_in_mm/pitch_in_mm ; [h_p , v_p] = meshgrid( 0:W, 0:H); [h_d,v_d] = xyz2distorted(h_p,v_p, f/s, hc, vc,spec_file, pitch_in_mm); h_delta = round((h_d-h_p) * 8); v_delta = round((v_d-v_p) * 8); mh = h_delta(1:2^m:end, 1:2^m:end)'; mv = v_delta(1:2^m:end, 1:2^m:end)'; dlmwrite('mesh.txt', [mh(:), mv(:)], 'delimiter', ' '); end function [h_d, v_d] = xyz2distorted(x, y, z, hc, vc, spec_file, pitch_in_mm) [phi, r] = cart2pol(x-hc, y-vc); theta = atan2(r, z); lut = read_spec(spec_file, pitch_in_mm); r = interp1(lut(:,1), lut(:,2), theta); [h_d, v_d] = pol2cart(phi, r); h_d = h_d + hc; v_d = v_d + vc; end function lut = read_spec(spec_file, pitch_in_mm) lut0 = dlmread(spec_file); theta = lut0(:,1)/180*pi; lut = [theta, lut0(:,2)/pitch_in_mm]; end