【图像处理】基于双目视觉的物体体积测量算法研究(Matlab代码实现)

news/2024/11/29 6:36:39/

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现



💥1 概述

本文运用基于双目立体视觉的技术,提出一种快速非接触测量目标物体的体积方法。此方法将适用于多种场景下的目标体积测量,具有测量精度较高、测量成本低和灵活等优点。

📚2 运行结果

 

 

 

 

 

 

 

 

主函数部分代码:

%%
% 清理空间
clc;
clear;
close all;

%% 导入立体标定参数
load stereoParams.mat


% 立体参数的可视化
% figure;
% showExtrinsics(stereoParams);

%% 导入数据
frameLeft = imread('images/left007.bmp'); 
frameRight = imread('images/right007.bmp');

[frameLeftRect, frameRightRect] = rectifyStereoImages(frameLeft, frameRight, stereoParams);

figure;
imshow(stereoAnaglyph(frameLeftRect, frameRightRect));
title('Rectified Frames');

%% 视差计算
frameLeftGray  = rgb2gray(frameLeftRect);
frameRightGray = rgb2gray(frameRightRect);

DisparityRange = [0, 160];
disparityMap = disparity(frameLeftGray, frameRightGray, 'Method','SemiGlobal','DisparityRange',DisparityRange,'BlockSize',5,'ContrastThreshold', 0.5,'UniquenessThreshold',0);

figure;
imshow(disparityMap, DisparityRange);
title('Disparity Map');
colormap jet
colorbar

%% 三维重建
points3D = reconstructScene(disparityMap, stereoParams);

% 单位为mm
points3D = points3D(:, 400:1000, :);
ptCloud = pointCloud(points3D);
figure;
pcshow(ptCloud);
% title('Original Data');

%% 空间位置变换
% 将有序点云变化为无序点云
ptCloudA= removeInvalidPoints(ptCloud);

% 坐标转换
Temp(:, 1) = ptCloudA.Location(:, 1);
Temp(:, 2) = ptCloudA.Location(:, 2);
Temp(:, 3) = -ptCloudA.Location(:, 3) + 400;

% 去除位置不合理的点
[i, j]=find(Temp(:, 3) < 0 | Temp(:, 3) > 500);
Temp(i, :) = [];

ptCloudB = pointCloud(Temp);

figure;
pcshow(ptCloudB);
title('Transform Data');

%% 去噪
% Threshold为离群值阈值,阈值为与选定点到邻居点的距离值的一个标准差,大于指定的阈值,则认为该点是异常值。
ptCloudC = pcdenoise(ptCloudB, 'NumNeighbors', 100, 'Threshold', 1);   %1~6此实验Threshold=1,第7次Threshold=10

figure;
pcshow(ptCloudC);
% title('Denoised Data');

%% 点云分割
% maxDistance:从一个内点到平面标量值的最大距离
maxDistance = 10;
referenceVector = [0, 0, 1];
% 拟合平面的法线向量和参考方向之间的最大绝对角距离,以度为单位指定为标量值。
maxAngularDistance = 5;
[model, inlierIndices, outlierIndices] = pcfitplane(ptCloudC, maxDistance, referenceVector, maxAngularDistance);
ptCloudPlane = select(ptCloudC, inlierIndices);
ptCloudD = select(ptCloudC, outlierIndices);


figure;
pcshow(ptCloudC);
% title('Splitting1 Data');

hold on
plot(model);

figure;
pcshow(ptCloudD);
% title('Part1 Data');

figure;
pcshow(ptCloudPlane);
title('Part2 Data');

%% 空间位置校正
ptCloudE = pcTransform(ptCloudD, model);

figure;
pcshow(ptCloudE);
title('Transform');

🎉3 参考文献

[1]隋婧,金伟其.双目立体视觉技术的实现及其进展[J].电子技术应用,2004(10):4-6+12.

部分理论引用网络文献,若有侵权联系博主删除。

🌈4 Matlab代码实现


http://www.ppmy.cn/news/329095.html

相关文章

月月记账本技术支持

月月记账本技术支持&#xff1a; 如果您在使用过程中有问题请留言或发邮件我。 邮箱地址&#xff1a;320720305qq.com 谢谢! Monthly Bookkeeping Technical Support: If you have any questions, please leave a message or send me an email. Email&#xff1a;3207203…

安装windows11,跳过联网激活,跳过登录微软账户

进入联网步骤界面后&#xff0c;按ShiftF10,调出命令行黑窗口&#xff0c;输入 oobe\BypassNRO.cmd 回车&#xff0c;电脑自动重启&#xff0c;再次进入联网界面后&#xff0c;右下角出现“我没有网络”的选项&#xff0c;之后就可以创建本地账户登录。

Win11跳过联网激活

跳过前面的设置&#xff0c;直接来到联网界面&#xff1b;同时按下键盘上 ShiftF10&#xff08;台式机&#xff09;或者 FnShiftF10&#xff08;笔记本&#xff09;快捷键调出命令提示符窗口&#xff1b;输入命令&#xff1a; OOBE\BYPASSNRO命令输入完毕后按下回车&#xff0…

用晨曦记账本记录流水账如何导出账目数据

在使用晨曦记账本后&#xff0c;很多人在问如何将记录的账目数据导出呢&#xff1f;下面来一起看导出的方法。希望以后可以用到。 进入到晨曦记账本上&#xff0c;点开“高级设置”打印的方法有两种选择&#xff0c;方法一样。用多功能版来测试一下。 在页面上调整出需要的账…

项目导入Angular Material 7流水账

day1: 1. 安装Angular Material&#xff0c;Angular CDK和Angular Animations。由于我的ng是10&#xff0c;这三包就装最近的10/11版本&#xff08;血泪教训得出的&#xff09;yarn add angular/material^11.0.1 angular/cdk^11.0.1 angular/animations^10.0.12. 配置动画imp…

7 记账期 012 2021 没有打开

报错截图: 业务操作&#xff1a;事务码MIGO使用移动类型101做采购订单入库 过账操作 报错。 报错原因&#xff1a;会计年度2021的期间12月份未开放 解决方案&#xff1a; 使用事务码OB52 或 ECC SPRO路径&#xff1a;SPRO->财务会计(新)->分类账->会记年度和过账期…

鸿蒙系列手机价格,搭载鸿蒙系统的手机,将在第四季度发布?售价2000元左右!...

之前因为华为事件闹得沸沸扬扬的鸿蒙系统&#xff0c;现在终于有了着落&#xff0c;据《环球时报》的消息称&#xff0c;华为今年将会发布第一款搭载鸿蒙系统的手机&#xff0c;并且售价在两千元左右&#xff01;之前也听过很多不确定的消息&#xff0c;但都不怎么靠谱&#xf…

400家营收破亿,外界因素促使中国芯自强,华为纯国产手机在望

2021年可谓中国芯片产业飞速成长的一年&#xff0c;国产芯片企业步入高度繁荣的阶段&#xff0c;统计数据显示2021年中国有400多家芯片企业的营收破亿&#xff0c;比2020年的289家增加了124家。 由于众所周知的原因&#xff0c;华为在芯片的供应方面面临一些阻碍&#xff0c;这…