如何用摄像头来测距
答案:2 悬赏:80 手机版
解决时间 2021-04-08 11:13
- 提问者网友:不爱我么
- 2021-04-08 04:29
如何用摄像头来测距
最佳答案
- 五星知识达人网友:山君与见山
- 2021-04-08 05:22
大伙应该还记得 cvCreateFileCapture 这个函数吗?
其实对于 cvCreateFileCapture 来说,其是根据一个指定的文件来初始化,
而对于 cvCreateCameraCapture 则不同,其是通过初始化一个设备 (也可以看做就是一个摄像头),
初始化以后,便可以从这个摄像设备中获取了。
至于参数 index 的话,如果您的电脑上连接了多个摄像设备,则需要通过这个 index 来指定到底要使用哪一个摄像头。
void cvCopy( const CvArr* src, CvArr* dst, const CvArr* mask=NULL );
这个函数的作用是拷贝一个数组到另一个数组,而根据前面的继承关系,IplImage 继承自 CvMat,
而 CvMat 又是继承于 CvArr ,所以在此处可以直接传入一个 IplImage 来实现拷贝,
很明显,src 是传入的数组,而 dst 则是复制完成后返回的结果数组,
而至于 mask 这个数组呢,比较变态,
它指定了数组 src 中哪些元素需要拷贝到 dst 数组中,哪些元素不能够拷贝到 dst 数组中,
mask 数组中标记为非 0 的则可以拷贝到 dst 中,标记为 0 的则不会拷贝到 dst 数组当中去。
这里需要注意的是,dst 数组和 src 数组必须是相同的类型,并且具有相同的维数和大小,否则整个程序会崩溃。原 理
假设激光束是与摄像头的光轴完全平行,激光束的中心落点在在摄像头的视域中是最亮的点。激光束照射到摄像头视域中的跟踪目标上,那么摄像头可以捕捉到这个
点,通过简单的图像处理的方法,可以在这侦图像中找到激光束照射形成的最亮点,同时可以计算出Y轴上方向上从落点到图像中心的象素的个数。这个落点越接近
图像的中心,被测物体距离机器人就越远。由下图图可以计算距离D:
其实对于 cvCreateFileCapture 来说,其是根据一个指定的文件来初始化,
而对于 cvCreateCameraCapture 则不同,其是通过初始化一个设备 (也可以看做就是一个摄像头),
初始化以后,便可以从这个摄像设备中获取了。
至于参数 index 的话,如果您的电脑上连接了多个摄像设备,则需要通过这个 index 来指定到底要使用哪一个摄像头。
void cvCopy( const CvArr* src, CvArr* dst, const CvArr* mask=NULL );
这个函数的作用是拷贝一个数组到另一个数组,而根据前面的继承关系,IplImage 继承自 CvMat,
而 CvMat 又是继承于 CvArr ,所以在此处可以直接传入一个 IplImage 来实现拷贝,
很明显,src 是传入的数组,而 dst 则是复制完成后返回的结果数组,
而至于 mask 这个数组呢,比较变态,
它指定了数组 src 中哪些元素需要拷贝到 dst 数组中,哪些元素不能够拷贝到 dst 数组中,
mask 数组中标记为非 0 的则可以拷贝到 dst 中,标记为 0 的则不会拷贝到 dst 数组当中去。
这里需要注意的是,dst 数组和 src 数组必须是相同的类型,并且具有相同的维数和大小,否则整个程序会崩溃。原 理
假设激光束是与摄像头的光轴完全平行,激光束的中心落点在在摄像头的视域中是最亮的点。激光束照射到摄像头视域中的跟踪目标上,那么摄像头可以捕捉到这个
点,通过简单的图像处理的方法,可以在这侦图像中找到激光束照射形成的最亮点,同时可以计算出Y轴上方向上从落点到图像中心的象素的个数。这个落点越接近
图像的中心,被测物体距离机器人就越远。由下图图可以计算距离D:
全部回答
- 1楼网友:雾月
- 2021-04-08 06:16
对,一定要用联想智能感应摄像头,因为出厂的机器装的有联想健康关爱中心这个软件,里面有个功能是智能测距调节屏幕亮度和提示你离屏幕距离的,这个必须配联想智能感应摄像头使用,一般的摄像头没有感应装置
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯