资源简介
单目测距是利用一个摄像头进行视频拍摄,在图像中找到待测物体。这一系列动作,涉及到了物体的识别,相机的结构,坐标变换的一些知识,距离的获取是一个很广泛的课题,用摄像头来测距是其中一个方向,包括单目测距、双目测距、结构光测距等方法。
代码片段和文件信息
clear;clc;close all
%处理第一张图片(对应距离为D)
I=imread(‘20180409-204942-278.jpg‘); %读入图片
figure
subplot(231);
imshow(I);
title(‘原图‘);
I=rgb2gray(I); %将RGB图转换成灰度图
subplot(232);
imshow(I);
title(‘灰度图‘);
[mn]=size(I);
for K=1:10
I2=wiener2(I[3 3]); %滤波10次,把多余的点滤去。
end
I=edge(I‘sobel‘); %集中边缘检测算子sobel、canny、log、roberts、prewitt。在此处sobel算子效果最好
subplot(233);
imshow(I);
title(‘边缘提取图‘);
for i=1:m %y
for j=1:n %x
if i<280 || i>340|| j<430|| j>490
I(ij)=0;
end
end
end
subplot(234);
imshow(I);
title(‘目标物提取图‘);
%形态学处理,填充轮廓内像素
SE=strel(‘diamond‘2); % strel在操作结构元素应用,用于膨胀腐蚀及开闭运算等操作的结构元素对象
%具体用法:SE = strel(shapeparameters)
%创建由指定形状shape对应的结构元素。%参数parameters一般控制SE的大小。
I2=imdilate(ISE); %imdilate对图像实现膨胀操作。
%IM2 = imdilate(IMSE)膨胀灰度,二值,压缩二值图像IM,返回IM2。
%参数SE为由strel函数返回的结构元素或者结构元素对象组。
I2=imfill(I2‘holes‘); %该函数用于填充二值图像中的空洞区域。 如, 黑色的背景上有个白色的圆圈。 则这个圆圈内区域将被填充。
subplot(235);
imshow(I2);
title(‘填充图‘);
sum1=0;
for i=1:m %计算白像素的个数,即为图形面积
for j=1:n
if I(ij)==1;
sum1=sum1+1;
end
end
end
fprintf(‘在距离为D时目标物的图形面积(像素点个数)s1=%f\n‘sum1);
%处理第二张图片(对应距离为D+d)
I=imread(‘20180409-205011-792.jpg‘); %读入图片
figure
subplot(231);
imshow(I);
title(‘原图‘);
I=rgb2gray(I);
- 上一篇:matlab计算图像锐度
- 下一篇:5点3次加权滤波的程序和数据
相关资源
- 机器视觉论文基于matlab的间单图像处
- 国外一大牛Petercorke 写得机器视觉工具
- 基于机器视觉的车牌识别系统
- 指纹识别数字图像处理+模式识别+机器
- 路标识别系统的
- 机器视觉单目测量
- 路标识别系统的设计与实现
- FCT(Fast Compress Tracking)目标跟踪程序
- 《MATLAB机器视觉与深度学习实战》 配
- 机器人学、机器视觉与控制——MATL
- 数字图像处理与机器视觉VisualC与Mat
- 高清彩色机器人学、机器视觉与控制
- MATLAB-机器视觉工具箱MVTB Peter Corke推荐
- 机器人学 机器视觉与控制 MATLAB算法基
- MATLAB车道线识别程序及车道线识别测
- 机器人学、机器视觉与控制 matlab 算法
- MATLAB机器视觉工具箱
- 机器人学、机器视觉与控制-MATLAB算法
- 计算机视觉、图像处理、硬币识别
- 基于机器视觉的薄型零件的分类
- 基于直方图优化的图像去雾技术.zip
- 天津工业大学机器视觉期末作业
- 人脸识别门禁系统.zip
- 灰度共生矩阵在matlab中实现纹理缺陷
- 机器人手眼标定Matlab程序高精度
- 基于机器视觉的零件缺陷检测
- 机器人手眼标定-Matlab程序高精度
- 机器视觉之模糊图像复原 (Image-Res
- souce-code 数字图像处理与机器视觉(光
- 简单自动智能识别物体程序机器视觉
评论
共有 条评论