资源简介

圆点摄像头激光测距源代码---本人亲自测试过:具体教程:http://blog.csdn.net/mbees/article/details/70138725

资源截图

代码片段和文件信息

/************************************************
 技术支持:个人qq:2424607185
 论坛:www.wh-robot.com
 淘宝店铺:https://shop129437807.taobao.com/index.htm?spm=2013.1.w5002-12008333349.2.OTokUy
 博客:http://blog.csdn.net/mbees?viewmode=contents
 原理说明:http://blog.csdn.net/mbees/article/details/70138725
 手机助手:从应用宝中心下载:小蜜蜂机器人
 维航机器人配件店 
 作者:mbees
************************************************/
#include “stdafx.h“
#include 
#include “highgui.h“
#include 
#include 
#include  
using namespace cv;
using namespace std;
Mat src;   //原图像存储变量
Mat src_gray;   //存灰度图变量
int thresh = 180;   //阈值设定
int max_thresh = 255;//最大阈值
int main( int argc char** argv ) {
VideoCapture cam(0);//获取摄像头0
if (!cam.isOpened()) exit(0);//判断是否存在,不存在退出
bool stop = false;//循环使能
while(!stop)
{
cam >> src;//获取摄像头
    cvtColor( src src_gray CV_BGR2GRAY );//灰度化      
GaussianBlur( src src Size(33) 0.1 0 BORDER_DEFAULT ); //线性滤波
blur( src_gray src_gray Size(33) ); //滤波       
namedWindow( “image“ CV_WINDOW_AUTOSIZE );   //创建一个窗体    
imshow( “image“ src );       //显示原图
moveWindow(“image“020);    //移动窗体使得均匀分布
//定义Canny边缘检测图像       
Mat canny_output;  //定义边缘检测存储变量   
vector hierarchy;    
Canny( src_gray canny_output thresh thresh*3 3 ); //利用canny算法检测边缘      
namedWindow( “canny“ CV_WINDOW_AUTOSIZE );       
imshow( “canny“ canny_output );      
moveWindow(“canny“50020);      
   vector > contours;  
findContours( canny_output contours hierarchy CV_RETR_TREE CV_CHAIN_APPROX_SIMPLE Point(0 0) ); //查找轮廓       
//计算轮廓矩       
vector mu(contours.size() );       
for( int i = 0; i < contours.size(); i++ )     
{   
mu[i] = moments( contours[i] false );   
}     
//计算轮廓的质心     
vector mc( contours.size() );      
for( int i = 0; i < contours.size(); i++ )     
{   
mc[i] = Point2d( mu[i].m10/mu[i].m00  mu[i].m01/mu[i].m00 );   
}     
//画轮廓及其质心并显示      
Mat drawing = Mat::zeros( canny_output.size() CV_8UC3 );         
for( int i = 0; i< contours.size(); i++ )      
{         
if (mc[i].y>260||mc[i].y<200)
{
continue;
}
Scalar color = Scalar( 255 0 0);        
drawContours( drawing contours i color 2 8 hierarchy 0 Point() );         
circle( drawing mc[i] 5 Scalar( 0 0 255) -1 8 0 );                
rectangle(drawing boundingRect(contours.at(i)) cvScalar(02550));  
double    gain = 0.001644074345 ;
            double    offset =0.001607879449 ;
unsigned int pixels_from_center =320 - mc[i].x;
            // 算出距离并打印出来
if(pixels_from_center>140)
{
gain = 0.001513280086  ;
offset =0.017372721230  ;
}else if(pixels_from_center>104)
{
gain = 0.001635044755  ;
offset =0.003201011964  ;
}else
{
gain = 0.001644074345 ;
offset =0.001607879449 ;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-05-04 11:47  圆点激光测距源代码\
     目录           0  2017-05-04 11:45  圆点激光测距源代码\laser01\
     目录           0  2017-05-03 17:49  圆点激光测距源代码\laser01\ConsoleApplication5\
     文件        3912  2017-05-04 11:45  圆点激光测距源代码\laser01\ConsoleApplication5\ConsoleApplication5.cpp
     文件        4702  2017-03-29 18:10  圆点激光测距源代码\laser01\ConsoleApplication5\ConsoleApplication5.vcxproj
     文件        1323  2017-03-13 21:06  圆点激光测距源代码\laser01\ConsoleApplication5\ConsoleApplication5.vcxproj.filters
     文件         164  2017-03-11 21:20  圆点激光测距源代码\laser01\ConsoleApplication5\ConsoleApplication5.vcxproj.user
     目录           0  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\
     文件       63512  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\CL.read.1.tlog
     文件        4798  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\CL.write.1.tlog
     文件         105  2017-03-12 17:16  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\ConsoleApplication5.lastbuildstate
     文件        3393  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\ConsoleApplication5.log
     文件      579874  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\ConsoleApplication5.obj
     文件     1179648  2017-03-12 00:31  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\ConsoleApplication5.pch
     文件          84  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\Laser01.lastbuildstate
     文件     1179648  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\Laser01.pch
     文件        7640  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\cl.command.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link-cvtres.read.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link-cvtres.write.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link-rc.read.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link-rc.write.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link.10516-cvtres.read.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link.10516-cvtres.write.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link.10516-rc.read.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link.10516-rc.write.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link.10516.read.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link.10516.write.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link.10796-cvtres.read.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link.10796-cvtres.write.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link.10796-rc.read.1.tlog
     文件           2  2017-05-04 11:40  圆点激光测距源代码\laser01\ConsoleApplication5\Debug\link.10796-rc.write.1.tlog
............此处省略253个文件信息

评论

共有 条评论