1 简介
三维重建是图像处理,计算机视觉,计算机图形学的一个重要研究领域.基于双目立体视觉的三维重建通过相机标定搭建一个对准的标准立体实验平台采集图像,进而对图像进行特征点检测与匹配找到待重建点,然后通过双目视觉原理计算三维坐标,最后进行纹理映射.根据真实图像的实验结果表明,具有较好的重建效果.
2 部分代码
function [RI, TI, ZI] = image2angularintesity(vi, I, params)%This function transforms the image such that each set of pixels that radiate% out at a given angle from the centroid become a vertical line in a new image.if nargin < 2params.number_angular_divisions = 2^6;params.number_radial_divisions = 40;endif nargin < 3verbose = 0;end[num_rows, num_cols] = size(I);[col_distance, row_distance] = meshgrid(linspace(-(num_cols) / 2 , (num_cols) / 2, num_cols),...linspace(-(num_rows) / 2 , (num_rows) / 2, num_rows));[T, R] = cart2pol(col_distance, row_distance);params.radius_min = sqrt(0.5);params.radius_max = max(R(R < min(R(~vi))));params.theta_min = -pi + ((2 * pi) / params.number_angular_divisions) / 2;params.theta_max = pi - ((2 * pi) / params.number_angular_divisions) / 2;radii = linspace(params.radius_min, params.radius_max, params.number_radial_divisions);thetas = linspace(params.theta_min , params.theta_max , params.number_angular_divisions);[RI, TI, ZI] = griddata(R(vi), T(vi), double(I(vi)), radii, thetas');ZI(isnan(ZI)) = mean(ZI(~isnan(ZI)));if params.VERBOSEfigureh = surf(RI, TI, ZI);view (-90,90)colormap(params.map)title('Image as a function of radius and angle')xlabel('Radius(pixels)')ylabel('Theta (radians)')set (h, 'linestyle', 'none')end
3 仿真结果





4 参考文献
[1]陈强. 基于双目立体视觉的三维重建[J]. 现代计算机:中旬刊, 2015.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
本文探讨了三维重建在计算机视觉中的应用,详细介绍了基于双目立体视觉的三维重建过程,包括相机标定、特征点检测、匹配及三维坐标的计算。提供了Matlab代码片段,展示了如何将输入图像转换为角度和强度的空间分布。实验结果显示了良好的重建效果。
1099

被折叠的 条评论
为什么被折叠?



