智能车制作

标题: 逆透视矫正变换资料网站 [打印本页]

作者: 暗修罗    时间: 2019-1-19 22:17
标题: 逆透视矫正变换资料网站
  https://blog.csdn.net/tjiyu/arti ... tm_source=blogxgwz0


补充内容 (2019-1-26 11:58):
%% 镜头失真校正--逆变换

clear,clc

img_origin1 = imread('107_1.BMP'); %读取图像文件

img_origin = rgb2gray(img_origin1); %将真彩色图像转换为灰度图像二维矩阵


img_size = size( img_origin ); % 返回矩阵的行数或列数 其中r=size(A,1)该语句返回矩阵A的行数row为垂直方向



m1=1.0477; %上面程序生成的m参数

m2=0.0349;

m3=-74.1094;

m4=0;

m5=-1.8277;

m6=126.8219;

m7=0;

m8=0.0530;



u=160; % 水平方向column

v=0; % 行row为垂直方向

x=(m1*u+m2*v+m3)/(m7*u+m8*v+1);% 水平方向column

y=(m4*u+m5*v+m6)/(m7*u+m8*v+1); % 行row为垂直方向

x=uint16(x);

y=uint16(y); %本段为生成新矩阵容纳校正后的图像

img_undist = zeros(y ,x ); % zeros(m,n)产生m×n的全0矩阵 所有元素初始化为0

new_size = size(img_undist); % 返回m×n全0矩阵的行数或列数

img_undist = uint8( img_undist );



for i = 1:(img_size(1)) % 行row为垂直方向

for j = 1:(img_size(2)) % 水平方向column

u=j; % 水平方向column

v=i; % 垂直方向

x=(m1*u+m2*v+m3)/(m7*u+m8*v+1); % 水平方向column

y=(m4*u+m5*v+m6)/(m7*u+m8*v+1);% 行row为垂直方向

x=int16(x)+new_size(2)/2; %物理坐标用负,现修正显示

y=int16(y);

if(y>0 &&x>0 )

img_undist(y,x)= img_origin(i,j); %对应坐标

end

end

end

img_undist=flipud(img_undist); %矩阵以水平轴翻转

subplot(1,2,1);imshow(img_origin);title('原图,60*160');

subplot(1,2,2);imshow(img_undist);title('校正图');       
---------------------
作者:尐譽
来源:CSDN
原文:https://blog.csdn.net/tjiyu/article/details/52516581
版权声明:本文为博主原创文章,转载请附上博文链接!
作者: 暗修罗    时间: 2019-1-26 12:04
小白第一步





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2