matlab相机标定工具箱能够自动标定吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab相机标定工具箱能够自动标定吗?相关的知识,希望对你有一定的参考价值。

我用MATLAB标定工具箱标定的时候是手工提取最外面的四个角点,然后自动提取出里面的所有角点,得到内参外参和畸变系数,可是在实际做项目过程中,总不能来一帧图像就用手提取一帧,请问MATLAB能够实现自动标定吗?全都是自动的,不需要手动那种

参考技术A 那个toolbox里有个.m文件专门解这个的。叫ro什么来着,r开头的文件。追问

请问能再具体一点吗?谢谢啦

基于toolbox_calib工具箱的相机标定matlab仿真

目录

一、理论基础

二、核心程序


作者ID  :fpga和matlab
CSDN主页:https://blog.csdn.net/ccsss22?type=blog
擅长技术:
1.无线基带,无线图传,编解码 
2.机器视觉,图像处理,三维重建 
3.人工智能,深度学习 
4.智能控制,智能优化
5.其他

一、理论基础

        相机标定是三 维 重 构 的前期关键技术之 一 ,标 定内容 包 括确 定 相 机 的 内部 参数 和外 部参 数.内部 参 数包 括相 机 的焦 距 和 成 像 的 大 小 ,用 于建 立 相 机 模 型 ;外 部 参 数 包 含 相 对 于 场 景 的 相 机 位 置 和 姿 态.参数 的精度 直接影 响 三维 重构 结 果 的 准确 性 .

        许 多 学 者 对 相 机 参 数 的 获 取 方 法 进 行 了 研 究 , HARTLEY_2提 出通 过控 制摄像 机绕 光 心作纯 旋 转 运 动标 定摄 像 机 的算 法 ,优 点 是 线 性 求 解 摄 像 机 的 内部 参数 ,处 理速 度较 快 ,缺 点是 标定 过 程 中人 们 无 法 知道 摄 像机 光 心 的 具 体 位置 ,在 实 际 应 用 中很 难 控 制摄 像机 作绕 光 心 的旋 转 ;w ONG 等 _3提 出物 体 作 圆周 运 动捕 获 物 体 轮廓 视 角 进 行 标 定 的方 法 ,这 种 方 法必须 手 动调 节视 角提供 近 似 的位 置 和方 向参 数 ,然后通 过 迭代优 化 改进 ,不仅 增加 操 作人 员 的工 作量 ,而且 在 测量 过程 中引入 人 为误 差 ,标定 的结果 不精 确.

       打开toolbox_calib,然后运行calib_gui:(注意,工具箱在有些电脑中可能会报错,如果保存就用matlab2013b

然后点第一个standard

点:

输入如下,DSC,j

再点:

然后一直点回车,直到出现如下效果:

用鼠标在上面点击四个角

然后点:

然后点就出现如下结果:

点击save保存标定结果

这个mat里面,有如下数据:

二、核心程序

function show_window(cell_list,fig_number,title_figure,x_size,y_size,gap_x,font_name,font_size)


if ~exist('cell_list'),
    error('No description of the functions');
end;

if ~exist('fig_number'),
    fig_number = 1;
end;
if ~exist('title_figure'),
    title_figure = '';
end;
if ~exist('x_size'),
    x_size = 85;
end;
if ~exist('y_size'),
    y_size = 14;
end;
if ~exist('gap_x'),
    gap_x = 0;
end;
if ~exist('font_name'),
    font_name = 'clean';
end;
if ~exist('font_size'),
    font_size = 8;
end;

figure(fig_number); clf;
pos = get(fig_number,'Position');

[n_row,n_col] = size(cell_list);

fig_size_x = x_size*n_col+(n_col+1)*gap_x;
fig_size_y = y_size*n_row+(n_row+1)*gap_x;

set(fig_number,'Units','points', ...
	'BackingStore','off', ...
	'Color',[0.8 0.8 0.8], ...
	'MenuBar','none', ...
	'Resize','off', ...
	'Name',title_figure, ...
'Position',[pos(1) pos(2) fig_size_x fig_size_y], ...
'NumberTitle','off'); %,'WindowButtonMotionFcn',['figure(' num2str(fig_number) ');']);

h_mat = zeros(n_row,n_col);

posx = zeros(n_row,n_col);
posy = zeros(n_row,n_col);

for i=n_row:-1:1,
   for j = n_col:-1:1,
      posx(i,j) = gap_x+(j-1)*(x_size+gap_x);
      posy(i,j) = fig_size_y - i*(gap_x+y_size);
   end;
end;

for i=n_row:-1:1,
    for j = n_col:-1:1,
        if ~isempty(cell_listi,j),
            if ~isempty(cell_listi,j1) & ~isempty(cell_listi,j2),
                h_mat(i,j) = uicontrol('Parent',fig_number, ...
                    'Units','points', ...
                    'Callback',cell_listi,j2, ...
                    'ListboxTop',0, ...
                    'Position',[posx(i,j)  posy(i,j)  x_size   y_size], ...
                    'String',cell_listi,j1, ...
                    'fontsize',font_size,...
                    'fontname',font_name,...
                    'Tag','Pushbutton1');
            end;
        end;
    end;
end;

%------ END PROTECTED REGION ----------------%

A19-13

以上是关于matlab相机标定工具箱能够自动标定吗?的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB标定工具箱 相机标定

相机标定简介与MatLab相机标定工具箱的使用(未涉及原理公式推导)

相机标定:Matlab标定工具箱使用要点

原创工具 | OpenCV-CamCalib一个基于 OpenCV 的自动化相机数据采集和标定程序

原创工具 | OpenCV-CamCalib一个基于 OpenCV 的自动化相机数据采集和标定程序

相机标定