|
其实原理很简单
当一个物体离摄像头得距离为L时,
该物体大小为S
已知L和S之后,移动物体,
此时物体大小为s1
根据S/s1=当前距离/L可知
当前距离 L1=S*L/s1
窗口程序集名 | 保 留 | 保 留 | 备 注 | 程序集1 | | | | 变量名 | 类 型 | 数组 | 备 注 | 实际距离与像素比例 | 双精度小数型 | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 采集类 | 视频采集 | | | 图片 | 多维矩阵 | | | 分类器 | 级联分类器 | | | 框 | 矩形向量i | | | 矩形 | 矩形数据结构i | | | 颜色 | 标量 | | | 标签底色 | 标量 | | | i | 整数型 | | | 标签尺寸 | 尺寸数据结构i | | | 距离 | 双精度小数型 | | |
实际距离与像素比例 = 1 颜色. 赋值 (0, 0, 255, 0 )采集类. 打开 (0, #捕获API_DSHOW, ) 采集类. 设置 ( #采集_属性_FOURCC, 1196444237 )采集类. 设置 ( #采集_属性_框架_宽, 640 )采集类. 设置 ( #采集_属性_框架_高, 480 )如果真 (采集类. 已打开 () = 假)信息框 (“请检查设备是否安装。”, 0, “这是个错误信息!”, )返回 (-1 ) 分类器. 加载 (“E:\OPENCV\opencv\sources\data\haarcascades\haarcascade_frontalface_alt.xml”)如果真 (分类器. 空 ()) 信息框 (“分类器文件加载失败。”, 0, “这是个错误信息!”, )返回 (-1 )判断循环首 (采集类. 读 (图片.指针 )) 分类器. 检测多尺度Z (图片.指针, 框.指针, 1.1, 3, 0, 20, 20, 0, 0 )变量循环首 (0, 框. 尺寸 () - 1, 1, i )框. 取数据 (i, 矩形 )视觉_矩形i (图片.指针, 矩形, 颜色, 2, 8, 0 )距离 = 矩形.宽度 × 矩形.高度 × 实际距离与像素比例 视觉_获取文本尺寸 (“Distance:” + 到文本 (距离 ), #字体_衬线_简单, 0.5, 1, 0, 标签尺寸 )视觉_矩形Zi (图片.指针, 矩形.左边, 矩形.顶边, 标签尺寸.宽, 标签尺寸.高, 标签底色, -1, 8, 0 )视觉_放置文本Zi (图片.指针, “Distance:” + 到文本 (距离 ), 矩形.左边, 矩形.顶边 + 标签尺寸.高, #字体_衬线_简单, 0.5, 颜色, 1, 8, 假)变量循环尾 ()视觉_显示图像 (“小白鼠”, 图片.指针 )如果真 (视觉_等待按键 (20 ) = #空格键 )跳出循环 ()判断循环尾 ()返回 (0 )
链接:https://pan.baidu.com/s/1VSYkILerRQsoDiIhl-6eTQ
提取码:4ypk
复制这段内容后打开百度网盘手机App,操作更方便哦
|
|