⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basedlineindrictc100.m

📁 现在有很多相机类型
💻 M
字号:
function  BasedLineINDrictC100()  %校正c100图像(358,235,500)x0,y0,R
%  rgb=imread('D:\0.bmp');
 rgb = imread('D:\dzf\fisheye image\C100\testImage0337.bmp');
[ height, width, v ] = size(rgb);
[X0,Y0,R] = Yuan(rgb); %返回圆形区域的圆心坐标及半径

%%%%%%求得畸变平面中心在校正平面的对应中心%%%%%%%%%%
x0 = 360;
y0 = 240-100;
r = round( R);%500;
u0 = x0;
v0 = y0;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Image = zeros ( height,width,v );
Image = uint8 ( Image );
%Image(v0, u0, 1:3)=rgb(y0,x0,1:3);
%figure,imshow(Image)

%取成像平面图像上任意一点p(x,y),x,y皆为整数
for y = 1 : height
    Delta = floor( sqrt( r ^ 2 - ( y - y0 ) ^ 2 ) );
    for x = x0 - Delta : x0 + Delta
         rd = round( sqrt( ( y - y0 ) ^ 2 + ( x - x0 ) ^ 2) ); %畸变点p距原点的距离为r
%  rd = 603;
%         if rd >= r
%             continue
%         end
        dx = x - x0;
        dy = y - y0;
        if dx == 0          %y轴上点不发生畸变
            v = y;
            u = x;
        else
            if dx < 0
                phi_d = pi + atan( dy / dx ); %畸变点p的方位角
            else
                phi_d = 2 * pi + atan( dy / dx ); %畸变点p的方位角
            end

            phi_p = phi_d; %无畸变点p的方位角
            m = sqrt(1-(rd/r)^2);
            if m ~= 0
                rp=round( rd / m);%无畸变点p距原点的距离为rp
            else
                rp = rd ;
            end
            x1 = round( rp * cos( phi_p ) ); %无畸变点在x轴上坐标
            y1 = round( rp * sin( phi_p ) ); %无畸变点在y轴上坐标
            
            u = u0 + x1;
            v = v0 + y1;
        end
        
        if v > height || v < 1 || u > width || u < 1 %如果超出图像之外的信息舍去
            continue
        end

        Image( v, u, :)=rgb( y, x,:);
        
    end
end

%%%%%%插值%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%CorrectionImage = imresize ( Image , [ 480 720 ] , 'bilinear' );
%figure ,imshow(CorrectionImage);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure, imshow ( Image) ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -